Как исправить ошибку «SMTP-сервер требует безопасного соединения или клиент не прошел проверку подлинности», когда ответ сервера был 5.7.0? - PullRequest
0 голосов
/ 01 мая 2019

Я включил свое менее безопасное приложение в Gmail, думаю, проблема в SSL.

My powershell screenshot

My current problem after changing port and $smtp

$time = get-date 
$smtpServer = “smtp.gmail.com”
$smtp.EnableSSL = $true
$smtp.Credentials = New-Object System.Net.NetworkCredential(“user”, “password”)
$smtp = new-object Net.Mail.SmtpClient($smtpServer,587) **587 to 465**
$msg = new-object Net.Mail.MailMessage
$msg.From = (“myemail@gmail.com”)
$msg.To.Add(“myemail@gmail.com”)
$body=”Your message Body”
$msg.Subject = “Mail From Gmail ” + $time
#your file location
$files=Get-ChildItem “C:\Users\Public\Pictures\LINE”
Foreach($file in $files)
{
Write-Host “Attaching File :- ” $file
$attachment = New-Object System.Net.Mail.Attachment –ArgumentList 
C:\Users\Public\Pictures\LINE\$file
$msg.Attachments.Add($attachment)
}
$smtp.Send($msg)
$attachment.Dispose()
$msg.Dispose()

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Однажды у меня была похожая проблема с моим сценарием.На мобильном телефоне прямо сейчас, но, если я правильно помню, я в итоге создал пароль приложения для использования и отключил опцию Менее безопасное приложение.

https://support.google.com/accounts/answer/185833?hl=en

0 голосов
/ 01 мая 2019

Вы пытались изменить порт? Мне кажется, что вы все еще используете 587, который ожидает TLS / SSL или STARTTLS.

Есть ли причина, по которой вы не проходите аутентификацию и не используете SSL / TLS?

Я читал, что Google не использует SMTP в виде открытого текста, если STARTTLS не поддерживается. Если вы явно выбрали опцию «Unsecured» при настройке сервера, я считаю, что вам нужно использовать другой порт. 25 (возможно).

Редактировать: Похоже, вам не хватает аргументов в методе отправки. Попробуйте этот код. Или попробуйте изменить более удобный командлет Send-MailMessage. https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/Send-MailMessage?view=powershell-5.1

$EmailFrom = "notifications@somedomain.com"
$EmailTo = "me@earth.com" 
$Subject = "Notification from XYZ" 
$Body = "this is a notification from XYZ Notifications.." 
$SMTPServer = "smtp.gmail.com" 
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587) 
$SMTPClient.EnableSsl = $true 
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("username", "password"); 
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...