Отправка электронных писем с помощью MailKit перестала работать на некоторых серверах [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 Отправка электронных писем с помощью MailKit перестала работать на некоторых серверах [закрыто]

Сообщение Anonymous »

У меня есть служба C# Windows, которая отправляет электронное письмо с помощью MailKit при запуске службы (или в случае возникновения ошибки). Это работает безупречно уже много лет. В какой-то момент 23.11 он перестал работать с такой ошибкой:

535: 5.7.139 Аутентификация не удалась, запрос не соответствует критериям успешной аутентификации. Свяжитесь со своим администратором. [LO4P265CA0130.GBRP265.PROD.OUTLOOK.COM 2025-11-25T08:52:57.800Z 08DE2BB235820936]

Окружающая среда:
  • smtp.office365.com
  • порт 587
  • TLS 1.2
Странно то, что один и тот же код, использующий одни и те же учетные данные, работает на других компьютерах. Я думал, что это может быть что-то внешнее, если домен дает сбой, но это тоже не так, но опять же, он дает сбой на некоторых машинах, но не на всех.
Я создал еще одну учетную запись электронной почты, и она работает так, как и следовало ожидать, даже на машинах, где она дает сбой с исходной учетной записью.
Это код, который я извлек в простой .exe-файл, чтобы я мог протестировать его на любом сервере... это очень просто, но, как я понимаю скажем, одни и те же учетные данные работают на некоторых серверах, но не на других.
var email = new MimeMessage();
email.From.Add(new MailboxAddress("Connect 2", "username@domain.co.uk"));
email.To.Add(new MailboxAddress("Mark J", "someone@domain.co.uk"));
email.Subject = "Email send test";

email.Body = new TextPart("html")
{
Text = ""
};

try
{
using (var client = new SmtpClient())
{
// Enforce TLS 1.2+
client.SslProtocols = System.Security.Authentication.SslProtocols.Tls12;

client.Connect("smtp.office365.com", 587, MailKit.Security.SecureSocketOptions.StartTls);

client.Authenticate("username@domain.co.uk", "password");

client.Send(email);
client.Disconnect(true);
}

MessageBox.Show("Email sent");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... me-servers
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»