Я использовал приведенный ниже сценарий PowerShell для отправки электронной почты с использованием данных учетной записи Azure SendGrid. При выполнении скрипта я получаю сообщение об ошибке Send-MailMessage : Unable to read data from the transport connection: net_io_connectionclosed
Скрипт PoweShell:
$Username = "[email protected]"
$Password = ConvertTo-SecureString "xxxx" -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $Username, $Password
$SMTPServer = "smtp.sendgrid.net"
$EmailFrom = "[email protected]"
$EmailTo = "[email protected]"
$Subject = "SendGrid test"
$Body = "SendGrid testing successful"
Send-MailMessage -smtpServer $SMTPServer -Credential $credential -Usessl -Port 587 -from $EmailFrom -to $EmailTo -subject $Subject -Body $Body
Итак, может ли кто-нибудь предложить мне, как решить эту проблему.
Похоже на проблему с сетевым подключением, вы можете проверить следующее:
Для получения дополнительной информации рекомендуется использовать API-ключи, предоставленные SendGrid, для отправки электронных писем вместо отправки паролей через скрипт.
Как проверить подключение smtp-сервера на ОС mac
вместо использования Telnet?
Попробуйте nc -vz (your router's IP address) (port)
в терминале. Подробнее здесь
Есть ли альтернативный подход к отправке электронной почты с последними сведениями о развертывании ресурсов Azure?
А вы пробовали метод из моей общей ссылки?
Спасибо @Nancy, он работает с отправкой ключа API сетки вместо имени пользователя и пароля.
Нэнси, я могу отправить электронное письмо с ключом API сетки отправки, перейдя по этой ссылке . Но я хочу отправить письмо нескольким получателям. Итак, не могли бы вы предложить мне, как добавить несколько адресов электронной почты в раздел to
.
Попробуйте использовать "to" = @( @{ "email" = "[email protected]" "name" = "Принимающая сторона" }, @{ "email" = "[email protected]" "name" = " Принимающая сторона" } )?
Да, это работает. Но я ищу формат массива для передачи списка адресов электронной почты.
Я исправил эту ошибку (в среде, отличной от Azure), изменив протокол безопасности на TLS 1.2:
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;
Подробности: Powershell настраивает протокол безопасности на Tls 1.2
Связано: SmtpException: невозможно прочитать данные из транспортного соединения: net_io_connectionclosed
Работал на меня. Спасибо, что сэкономили часы разочарования 😂
Я пытаюсь запустить эту команду на
mac
osTest-NetConnection
, чтобы узнать информацию оsmtp.sendgrid.net
соединении. Но я получаю ошибкуNot able find the command Test-NetConnection