У меня есть простой код, используемый на нескольких старых веб-сайтах, код используется для отправки уведомления по электронной почте при отправке формы. Этот код работает нормально. Однако ИТ-администратор хочет включить многофакторную аутентификацию (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);
}
}
Теперь можно обмануть: stackoverflow.com/questions/55566016/…
После исследования этого вопроса это вполне возможно, как указано в некоторых ссылках, однако эти справочные документы относятся к старым версиям решения. Поэтому я обновляю рабочее решение последней версией документации, доступной на MS. решение практически такое же.
Код останется прежним, только вам нужно будет использовать пароль приложения, который можно создать на странице https://mysignins.microsoft.com/security-info
Шаг 1: войдите на свой веб-сайт Office365 после включения MFA/2FA. Шаг 2: перейдите на вкладку «Информация о безопасности» и добавьте новый метод входа «+ Добавить метод входа».
Шаг 3. Выберите метод пароля приложения и выполните шаги.
Шаг 4. сохраните пароль приложения для использования в коде.
smtp.Credentials = new NetworkCredential(fromEmail, appPassword);
Это все, что вам нужно сделать, и код должен работать без проблем. Я протестировал этот код несколько раз, чтобы убедиться, что вы можете отправлять электронную почту.
И последнее, что я хотел бы отметить: после включения 2FA/MFA от ИТ-администратора для этого пользователя вам следует подождать не менее 1 часа, чтобы изменения отразились глобально, поскольку мой код продолжал работать почти 10 минут после того, как 2FA был включен. включено без использования пароля приложения.
создайте пароль приложения: support.microsoft.com/en-us/account-billing/…