启用 2FA - 多重身份验证时如何使用 C# 发送电子邮件

问题描述 投票:0回答:1

我有一个在多个旧网站上使用的简单代码,代码用于在提交表单时发送电子邮件通知。这段代码工作正常。然而,IT 管理员希望为发件人电子邮件启用多重身份验证 (MFA),该电子邮件基本上是 Office365 电子邮件地址。

下面的代码可能会起作用,因为它可能不会影响启用 MFA 的电子邮件地址,因为我们正在使用此电子邮件使用代码发送电子邮件?

using System;
using System.Net;
using System.Net.Mail;

protected void SendEmail()
{
    string fromEmail = "[email protected]";
    string appPassword = "YourAppPassword"; // Use the App Password generated for the application
    string toEmail = "[email protected]";
    string subject = "Test Email";
    string body = "This is a test email sent from ASP.NET WebForms.";

    try
    {
        using (MailMessage mail = new MailMessage())
        {
            mail.From = new MailAddress(fromEmail);
            mail.To.Add(toEmail);
            mail.Subject = subject;
            mail.Body = body;
            mail.IsBodyHtml = true;

            using (SmtpClient smtp = new SmtpClient("smtp.office365.com", 587))
            {
                smtp.EnableSsl = true;
                smtp.Credentials = new NetworkCredential(fromEmail, appPassword); // Use the App Password
                smtp.Send(mail);
            }

            Response.Write("Email sent successfully.");
        }
    }
    catch (Exception ex)
    {
        Response.Write("Error: " + ex.Message);
    }
}
c# asp.net-mvc webforms smtp
1个回答
0
投票

对此进行研究后,很可能如一些参考文献中指出的那样,但是这些参考文档引用的是旧版本的解决方案。因此,我正在使用 MS 上提供的最新文档更新工作解决方案。解决方案几乎相同。

代码将保持不变,只是您必须使用可在 https://mysignins.microsoft.com/security-info

创建的应用程序密码

第1步:启用MFA/2FA后登录您的office365网站。 第 2 步:转到安全信息选项卡并添加新的登录方法“+ 添加登录方法” [![在此处输入图像描述][1]][1]

第3步:选择应用程序密码方法并完成步骤 [![在此处输入图像描述][2]][2]

第4步:保存应用程序密码以在代码中使用

smtp.Credentials = new NetworkCredential(fromEmail, appPassword);

这就是您需要做的全部事情,代码应该可以正常运行。我已多次测试此代码以确保您能够发送电子邮件。

我想说的最后一点是,在 IT 管理员为该用户启用 2FA/MFA 后,您应该等待至少 1 小时以使更改反映到全局,对于我来说,我的代码在 2FA 后继续工作了近 10 分钟无需使用应用程序密码即可启用。 [1]:https://i.sstatic.net/HN8UV8Oy.png [2]:https://i.sstatic.net/rUsZvWjk.png

© www.soinside.com 2019 - 2024. All rights reserved.