如何在 asp.net C# 中使用启用两因素身份验证的 office365 电子邮件帐户发送电子邮件?
Posted
技术标签:
【中文标题】如何在 asp.net C# 中使用启用两因素身份验证的 office365 电子邮件帐户发送电子邮件?【英文标题】:How to send email using two factor authentication enabled office365 email account in asp.net C#? 【发布时间】:2019-08-29 03:58:09 【问题描述】:我正在尝试使用启用双重身份验证的office365电子邮件帐户发送电子邮件。它给出了身份验证失败错误。对于尚未启用双因素身份验证的电子邮件帐户,效果很好。如何解决这个问题?
using (SmtpClient client = new SmtpClient())
client.Port = Convert.ToInt32(appSettings["Port"]);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Host = "smtp.office365.com";
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(SenderMailAddress, SenderMailPassword);
email.Subject = String.Format("0", txtMailSubject.Text);
//
email.Body = String.Format("0", text);
email.IsBodyhtml = true;
client.Send(email);
错误信息是
System.Net.Mail.SmtpException:SMTP 服务器需要安全 连接或客户端未通过身份验证。服务器响应 是:5.7.1 客户端未在 System.Net.Mail.MailCommand.CheckResponse
【问题讨论】:
你可以通过使用App Passwords来解决这个问题 @Manusha 您是否使用 Brendan Green 提供的解决方案解决了您的问题? @Marc 不,我找不到解决方案。因此,我从该电子邮件帐户中删除了两因素身份验证。 在account.activedirectory.windowsazure.com/AppPasswords.aspx 创建和使用应用密码 您的交易所管理员必须为 2FA 用户启用此功能。文档:docs.microsoft.com/en-us/azure/active-directory/user-help/… 【参考方案1】: MailAddress from = new MailAddress("fromid");
MailAddress to = new MailAddress("toID");
MailMessage message = new MailMessage(from, to);
message.Subject = "Using the new SMTP client.";
message.Body = @"The sensor get offline ...";
SmtpClient client = new SmtpClient(server);
client.Host = "hostID";
client.Port = 587;
client.EnableSsl = true;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = true;
client.Credentials = new NetworkCredential
UserName = "**********",
Password = "*************,
;
Console.WriteLine("Sending an email message to 0 using the SMTPhost 1.");
【讨论】:
您能否解释一下这将如何解决 2 因素身份验证?以上是关于如何在 asp.net C# 中使用启用两因素身份验证的 office365 电子邮件帐户发送电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章
更改默认 ASP.NET 身份 两因素记住 Cookie 过期时间
两因素 Google 身份验证与服务器上的代码不匹配 - ASP.Net MVC
如何在 ASP.NET Core 3.1 中启用多重身份验证?