@dwordf

Отправка письма через Powershell. В чем ошибка?

$EmailFrom = 'почта откуда отправляю@yandex.ru'
$EmailTo = 'куда@gmail.com'
$Subject = "‪C:\1\1.png"
$Body = "Test_1"
$SMTPServer = 'smtp.gmail.com'
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 465)
$SMTPClient.Credentials = New-Object Net.NetworkCredential("почта", "пароль");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)


Ошибка
Исключение при вызове "Send" с "4" аргументами: "Сбой при отправке сообщения электронной почты."
строка:8 знак:1
+ $SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : SmtpException
  • Вопрос задан
  • 493 просмотра
Решения вопроса 1
@MaxKozlov Куратор тега PowerShell
465 порт - smtps. оно .net не поддерживается
https://docs.microsoft.com/en-us/dotnet/api/system...
тут пишут что используется StartTLS, а значит надо другой порт использовать - 587
и starttls:
$SMTPClient.EnableSsl = $true

Возможно, ещё понадобится

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12


а вот тут большая дискуссия с примерами, что ещё надо в учётке гугла включить (access to less secure app)
https://stackoverflow.com/questions/32260/sending-...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы