Невозможно отправить почту через PowerShell с помощью Gmail. Код проверяет, есть ли доступ к веб-сайту, и отправляет электронное письмо.
Разрешить доступ к менее безопасному приложению - включен, двухэтапная проверка и сгенерирован пароль приложения.
ошибка: Send-MailMessage : Невозможно прочитать данные из транспортного соединения: net_io_connectionclosed .. См. Мой код ниже:
$recipient = "recipeint email"
$smtpUser = "sender email"
$mysubject = "Daily Checks"
$mailbodyonline = “Good day, The Website is available”
$mailbodyoffline = “Good day, The Website is not available”
$mailserver = "smtp.gmail.com"
$smtpPassword = "C:\mySriptFile\siteemailpass.txt"
$mypassword = ConvertTo-SecureString $smtpPassword -AsPlainText -Force
$Creds = New-Object -TypeName System.Management.Automation.PSCredential $smtpUser, $mypassword
$progressPreference = 'silentlyContinue'
$HTTP_Request = [System.Net.WebRequest]::Create('http://google.com')
$HTTP_Request.Timeout=10000;
$progressPreference = 'Continue'
$HTTP_Response = $HTTP_Request.GetResponse()
$HTTP_Status = [int]$HTTP_Response.StatusCode
If ($HTTP_Status -eq 200) {
Send-MailMessage -To $recipient -From $smtpUser -Subject $mysubject -Body $mailbodyonline -Credential $Creds -SmtpServer $mailserver -UseSsl -Port 465 -encoding UTF8
}
Else
{
Send-MailMessage -To $recipient -From $smtpUser -Subject $mysubject -Body $mailbodyoffline -Credential $Creds -SmtpServer $mailserver -UseSsl -Port 465 -encoding UTF8
}
If ($HTTP_Response -eq $null) { }
Else { $HTTP_Response.Close() }
Когда я меняю порт с 465 на 587, я получаю следующую ошибку; Send-MailMessage: SMTP-серверу требуется безопасное соединение, или клиент не был аутентифицирован. Ответ сервера был: 5.7.0 Требуется аутентификация.
Любая помощь и совет будут очень благодарны, заранее спасибо.