Отправить письмо из офиса 365 для бизнеса в C# - PullRequest
1 голос
/ 11 апреля 2020

Я пытался отправить почту в моем ASP. NET CORE проекте C#. Я запускал код в эмуляции (IIS Express), но я получаю сообщение об ошибке:

Для SMTP-сервера требуется безопасное соединение или клиент не прошел проверку подлинности.

Пожалуйста Вы можете мне помочь?

Мой код:

MailMessage msg = new MailMessage();
msg.To.Add(new MailAddress("formail@mail.com", "John Doe"));
msg.From = new MailAddress("frommail@mail.com", "Jane Doe");
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("frommail@mail.com", "Password");
client.Port = 587; 
client.Host = "smtp.office365.com";
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;

try
{
    client.Send(msg);
    return Content("Message sent successfully");
}
catch (Exception ex)
{
    return Content(ex.ToString());
}

Полная ошибка:

Система. Net .Mail.SmtpException: SMTP-сервер требует безопасное соединение или клиент не был аутентифицирован. Ответ сервера: 5.7.57 SMTP; Клиент не прошел аутентификацию для отправки анонимной почты во время ПОЧТЫ ОТ [AM3PR07CA0113.eurprd07.prod.outlook.com]

Большое спасибо.

РЕДАКТИРОВАТЬ: Я использовал код с этот вопрос . Но я получаю ошибку

System. Net .Sockets.SocketException (11001): такой хост не известен. Мой почтовый адрес: me@gjb-spgs.cz.

Мой новый код:

var sClient = new SmtpClient("gjbspgs-cz.mail.protection.outlook.com");
                var message = new MailMessage();

                sClient.Port = 25;
                sClient.EnableSsl = true;
                sClient.Credentials = new NetworkCredential("me@gjb-spgs.cz", "Password");
                sClient.UseDefaultCredentials = false;

                message.Body = "Test";
                message.From = new MailAddress("me@gjb-spgs.cz");
                message.Subject = "Test";
                message.To.Add(new MailAddress("someone@gmail.com"));

                sClient.Send(message);
            }
            catch (Exception ex)
            {
                Console.Write(ex.ToString());
            }
...