簡體   English   中英

如何在 asp.net C# 中使用啟用雙重身份驗證的 office365 email 帳戶發送 email?

[英]How to send email using two factor authentication enabled office365 email account in asp.net C#?

我正在嘗試使用啟用了雙因素身份驗證office365電子郵件帳戶發送 email。 它給出了身份驗證失敗的錯誤。 對於未啟用雙因素身份驗證的 email 帳戶可以正常工作。 如何解決這個問題?

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 Client was not authenticated at 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}.");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM