在asp.net核心应用程序中尝试使用SmtpClient发送电子邮件时出错



我正试图从asp.net核心应用程序发送一封电子邮件,但我一直收到一个读取的错误

SmtpException:SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:5.7.57客户端未通过身份验证以发送邮件。[JN2P275CA0038.ZAFP275.produd.OUTLOOK.COM]

我也尝试过检查防火墙规则和增加超时,但这没有帮助,所以我不确定出了什么问题

这是我发送电子邮件的代码

SmtpClient client = new SmtpClient("smtp.office365.com")
{
//Port = 587, //outlook port 587
Port = 587, 
EnableSsl = true,
//UseDefaultCredentials
UseDefaultCredentials = false,
TargetName = "STARTTLS/smtp.office365.com",
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = new NetworkCredential("myemail@myemails.com","password"),
};
MailMessage message = new MailMessage()
{
From = new MailAddress("myemail@myemails.com"),
Subject = "New Requisition",
Body = "New requisition has been created:" + " " + requisition.RequisitionNo,
IsBodyHtml = true,
};
message.To.Add(SubmissionNotfication.To);
//message.CC.Add(SubmissionNotfication.Cc);
//var attachment = new System.Net.Mail.Attachment(filePath); //Attachment(string fileName, string mediaType) 
//message.Attachments.Add(attachment);
client.Send(message);
}

了解如何设置应用程序以使用Microsoft 365或Office 365 发送电子邮件

您可能必须使用MX端点作为发送域,并尝试端口25

SmtpClient client = new SmtpClient("yourorganisation.mail.protection.outlook.com")
{
Port = 25, 
EnableSsl = true,
UseDefaultCredentials = false,
Credentials = new NetworkCredential("myemail@myemails.com","password"),
};

您遇到上述错误消息可能有几个原因

  1. 电子邮件用户名和密码不正确
  2. SSL设置。确保在通过应用程序发送电子邮件时启用SSL安全
  3. 您的端口问题。请确保您的ISP没有阻止端口25或587。您可以使用telnet进行检查

您可能需要查看有关使用outlook发送电子邮件的教程。如果你正在使用Gmail,那么你可以参考这篇文章https://dotnetblog.asphostportal.com/using-gmail-to-send-email-in-asp-net-core/

最新更新