#powershell
#powershell
Вопрос:
try {
$credentials = new-object Management.Automation.PSCredential “ad@foc.ru”, (“dasfkjaehj5” | ConvertTo-SecureString -AsPlainText -Force)
$mailParams = @{
'To' = "prices@mits.ru"
'From' = "ad@foc.ru"
'Encoding' = 'UTF8'
'Subject' = "340."
'Body' = "Сообщение отправлено автоматически"
'Smtpserver' = "mail.foc.ru"
'Port' = 25
'Attachments' = "E:FTPEMEXprice_forceauto.csv"
'Credential' = $credentials
}
Send-MailMessage @mailParams -ErrorAction Stop
}
catch {
$errorMessage = "Error sending email: $($_.Exception.Message)"
Write-Warning $errorMessage
Add-Content -Path 'E:FTPEMEXerror.txt' -Value $errorMessage
}
Мы получаем сообщение об ошибке:
Error sending email: The SMTP server required a secure connection, or the client was not authenticated. Server Response: 5.7.1 Local mailbox price@avto-olimp.com not found.**
Комментарии:
1. Сообщение об ошибке довольно четкое — попробуйте изменить
Port
значение на587
или465
и добавитьUseSsl = $true
в$mailParams
2. мы получили новую ошибку Ошибка отправки электронной почты: не удается прочитать данные из транспортного соединения: net_io_connectionclosed.
3. после редактирования изменений useSSL = $true и измените номер порта 587 и 465
4. Ну, тогда вам нужно спросить операторов
"mail.foc.ru"
, с какого порта передавать SMTP через TLS 🙂
Ответ №1:
К ВАШЕМУ СВЕДЕНИЮ…
Сайты SSL теперь требуют, чтобы вы также делали это в своем коде.
# Required for use with web SSL sites
[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
Комментарии:
1. я имею в виду в программе выше
2. Чтобы оставаться простым, просто поместите его в самый верх ваших сценариев.