Как устранить ошибку почты SMTP в Office 365 в C# - PullRequest
0 голосов
/ 05 мая 2020

Я использую отправку почты из office365, как показано ниже:


    MailMessage msg = new MailMessage();
    msg.To.Add(new MailAddress("*******", "*********"));
    msg.From = new MailAddress("******", "*******");
    msg.Subject = "This is a Test Mail";
    msg.Body = "This is a test message using Exchange OnLine";
    msg.IsBodyHtml = true;

    SmtpClient client = new SmtpClient();
    client.UseDefaultCredentials = false;
    client.Credentials = new System.Net.NetworkCredential("******", "********");
    client.Port = 587; // You can use Port 25 if 587 is blocked (mine is!)
    client.Host = "d*******.mail.protection.outlook.com";//"smtp.office365.com";//
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.EnableSsl = true;

    client.Send(msg);

Когда я использовал smtp.office365.com, у меня возникла проблема ниже

SMTP-серверу требуется безопасное соединение или клиент не прошел аутентификацию. Ответ сервера был: 5.7.57 SMTP; Клиент не прошел аутентификацию для отправки анонимной почты во время MAIL FROM [BM1PR01CA0089.INDPRD01.PROD.OUTLOOK.COM]

, и если я использую d**********.mail.protection.outlook.com, то я получил

Невозможно прочитать данные из транспортного соединения: net_io_connectionclosed.

1 Ответ

0 голосов
/ 05 мая 2020

Попробуйте изменить порядок установщиков свойств, переместив некоторые из них вверх:

MailMessage msg = new MailMessage();
    msg.To.Add(new MailAddress("*******", "*********"));
    msg.From = new MailAddress("******", "*******");
    msg.Subject = "This is a Test Mail";
    msg.Body = "This is a test message using Exchange OnLine";
    msg.IsBodyHtml = true;

    SmtpClient client = new SmtpClient();
    client.Credentials = new System.Net.NetworkCredential("******", "********");
    client.EnableSsl = true;
    client.UseDefaultCredentials = false;    
    client.Port = 587; // You can use Port 25 if 587 is blocked (mine is!)
    client.Host = "d*******.mail.protection.outlook.com";//"smtp.office365.com";//
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.Send(msg);

Также вы можете взглянуть на похожий поток - Ответ сервера был: 5.7.0 Должен сначала введите команду STARTTLS. i16sm1806350pag.18 - gsmtp .

См. похожие темы форума .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...