在使用 Visual Studio 以發布模式啟動專案后,我的 SmtpClient 作業并發送一封電子郵件,但在發布到服務器后我看到一個錯誤。
這是我的 C# 代碼:
using (MailMessage mail = new MailMessage())
using (SmtpClient smtpClient = new SmtpClient())
{
smtpClient.Host = "smtp-mail.outlook.com";
smtpClient.Port = 587;
smtpClient.Credentials = new NetworkCredential("mail", "password");
smtpClient.EnableSsl = true;
mail.Body = $"Imie: {Name}, Mail: {Email}, Subcject: {Subject}, Comment: {Comment}";
mail.IsBodyHtml = false;
mail.From = new MailAddress("mail", "Nowe zg?oszenie ze strony");
mail.To.Add("receiver");
mail.Subject = $"Nowe zg?oszenie ze strony";
smtpClient.Send(mail);
}
這是我的服務器: 作業系統:Ubuntu 主機:亞馬遜防火墻:無
這是一個錯誤:
失敗:Microsoft.AspNetCore.Server.Kestrel[13] 連接 ID“0HMKJSO3E4066”,請求 ID“0HMKJSO3E4066:00000002”:應用程式引發了未處理的例外。System.Net.Mail.SmtpException:SMTP 服務器需要安全連接或客戶端未通過身份驗證。服務器回應為:5.7.57 客戶端未通過身份驗證發送郵件。錯誤:535 5.7.3 身份驗證不成功 [BL1PR13CA0303.namprd13.prod.outlook.com]
正如我所說的憑據是正確的。
####更新
我將 smtp 服務提供商從 Outlook 更改為另一個,它可以作業。但現在問題是為什么前景不起作用?
uj5u.com熱心網友回復:
相比這篇文章,少了以下兩行:
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.UseDefaultCredentials = false;
參考的文章有一個注釋:
除非您在 Outlook.Com 帳戶上啟用了兩階段授權。如果有,您將需要創建一個應用程式專用密碼,否則當您的憑據被 Outlook.Com SMTP 服務器拒絕時,上面的代碼將引發例外。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/507309.html