SMTP服务器需要安全连接,或者客户端未仅在Azure上进行身份验证

时间:2018-11-20 16:56:07

标签: .net azure outlook smtp

我有一个应用程序,使用Outlook smtp服务器由用户发送电子邮件。该应用程序在上可以正常运行,并且具有相同的凭据。 但是,当我在Azure上发布ASP.NET Core应用程序时,收到以下异常:

SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:5.7.57 SMTP;客户端未通过身份验证,可以在从[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上运行,本地主机正常且正常运行时,才会发生此异常。

谢谢。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

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