c# - 如何在asp.net C#中使用启用两因素身份验证的office365电子邮件帐户发送电子邮件?
问题描述
我正在尝试使用启用了双重身份验证的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 进行身份验证
解决方案
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}.");
推荐阅读
- security - 异常 ALPN 配置不正确
- shell - Notification for process that has been active for more than X time
- javascript - GitHub API 合并拉取请求(合并按钮)未找到响应
- php - Ubuntu 18 服务器使用 Wordpress 引发 Apache 错误
- r - 使用 PRACMA 与 Integral2 进行双重积分会给出错误 Fun(x, y, ...) 中的错误:缺少参数“c”,没有默认值
- jboss7.x - Drools 无法解析记录器
- java - Spring Boot Test MalformedURLException:未知协议:类路径
- ruby-on-rails - 在 Windows 上安装 Rails gem 时出错
- javascript - 如何替换附加到另一个字符串的字符串?
- ios - 动量滚动错误 iOS