Почему мы получаем сообщение об ошибке? Ошибка отправки электронной почты: SMTP-серверу требуется безопасное соединение, или клиент не прошел проверку подлинности

#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. Чтобы оставаться простым, просто поместите его в самый верх ваших сценариев.