Я понимаю, что этот вопрос задавался ранее, но мне не удалось найти решение, используя связанные вопросы.
Я пытаюсь отправить два файла .csv с помощью Powershell в учетную запись gmail (externalexample@gmail.com), используя учетные данные из другой учетной записи Gmail (senderexample@gmail.com). Я включил функцию Less Secure Apps для обеих учетных записей, но при попытке запустить мой скрипт получаю следующую ошибку:
> Exception calling "Send" with "1" argument(s): "The SMTP server
> requires a secure connection or the client was not authenticated. The
> server response was: 5.7.0 Authentication Required. Learn more at" At
> C:\users\luke\downloads\EmailTest.ps1:37 char:1
> + $smtp.Send($msg)
> + CategoryInfo: NotSpecified: (:) [], MethodInvocationException
> + FullyQualifiedErrorId : SmtpException
Мой сценарий:
#Connection Details
$username="senderexample@gmail.com"
$password="senderpassword"
$smtpServer = “smtp.gmail.com”
$msg = new-object Net.Mail.MailMessage
#Change port number for SSL to 587
$smtp = New-Object Net.Mail.SmtpClient($smtpServer, 587)
#Uncomment Next line for SSL
$smtp.EnableSsl = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential($username, $password)
#From Address
$msg.From = "senderexample@gmail.com"
#To Address, Copy the below line for multiple recipients
$msg.To.Add(“externalexample@gmail.com”)
#Message Body
$msg.Body=”Please See Attached Files”
#Message Subject
$msg.Subject = “Email with Multiple Attachments”
#your file location
$files=Get-ChildItem “C:\Users\luke\Daily Stats\”
Foreach($file in $files)
{
Write-Host “Attaching File :- ” $file
$attachment = New-Object System.Net.Mail.Attachment –ArgumentList $file.FullName
$msg.Attachments.Add($attachment)
}
$smtp.Send($msg)
$attachment.Dispose();
$msg.Dispose();
Вся помощь очень ценится!