首页 > 解决方案 > SMTP 服务器需要安全连接,或者客户端未仅在 Azure 上进行身份验证

问题描述

我有一个应用程序,用户使用 Outlook smtp 服务器发送电子邮件。此应用程序在本地主机上运行良好,具有相同的凭据。但是当我在 Azure 上发布我的 ASP.NET Core 应用程序时,我收到以下异常:

SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.57 SMTP;在 MAIL FROM [SN6PR04CA0015.namprd04.prod.outlook.com] 期间,客户端未通过身份验证发送匿名邮件

要发送电子邮件,我正在使用代码:

MailMessage mail = new MailMessage(
EmailServiceConfiguration.SenderMail(),
   addresses.Aggregate((seed, value) => seed += "," + value)
);

SmtpClient client = new SmtpClient();
client.Port = 587;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.EnableSsl = true;
client.Credentials = new System.Net.NetworkCredential("account@contoso.com", "mypassword");
client.Host = "smtp-mail.outlook.com";
mail.Subject = "My subject";
mail.Body = "My text";
mail.IsBodyHtml = true;
client.Send(mail);

请记住,此异常仅在应用程序在 azure 上运行时发生,本地主机正常工作。

谢谢。

标签: .netazureoutlooksmtp

解决方案


Azure 致力于阻止垃圾邮件并减少负面 IP 声誉对客户造成的影响。从 2017 年 11 月 15 日开始,从虚拟机 (VM) 直接向外部域(例如 Outlook.com、gmail.com)发送出站电子邮件将仅适用于某些订阅类型。对于大多数新订阅,使用 TCP 端口 25(主要用于未经身份验证的电子邮件传递)的出站 SMTP 连接将被阻止(更多详细信息请点击此处)。


推荐阅读