Не удалось заставить Send-MailMessage работать с электронной почтой Office365, поэтому сейчас пытаюсь использовать Gmail, но все еще не работает.
Выдает ошибку:Send-MailMessage: SMTP-сервер требует безопасного соединения или клиент не прошел аутентификацию. Ответ сервера: 5.5.1 Требуется аутентификация.
Просмотрел много похожих ошибок отправки почты и попробовал несколько предложений
- Включил «Использовать менее безопасные приложения» в настройках безопасности Gmail
- Попробовал удалить useSSL
- Дважды проверил адрес и пароль gmail
Так как я новичок в powershell, может ли кто-нибудь указать мне правильное направление? Код ниже:
$From = "[email protected]"
$To = "[email protected]"
$Subject = "Here's the Email Subject"
$Body = "This is what I want to say"
$SMTPServer = "smtp.gmail.com"
$SMTPPort = "587"
Send-MailMessage -From $From -to $To -Subject $Subject -Body $Body -SmtpServer $SMTPServer -port $SMTPPort -UseSsl -Credential (Get-Credential)
решение1
Я думаю, вам нужно определить объект и присвоить Get-Credential
ему возвращаемое значение.
вот так:
$cred = Get-Credential
Send-MailMessage -From $From -to $To -Subject $Subject -Body $Body -SmtpServer $SMTPServer -port $SMTPPort -UseSsl -Credential $cred
Источник/дополнительная информация:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/get-credential?view=powershell-6