Я уже давно использую Mailkit в своих веб-приложениях на C #. Раньше никогда не было проблем, но сегодня я начал получать следующую ошибку при попытке отправить:

AuthenticationException: ErrorInProcessing: 4.7.0 Временная ошибка сервера. Пожалуйста, попробуйте позже. PRX4 [SYXPR01CA0117.ausprd01.prod.outlook.com] Аутентифицировать

Изначально я использовал MailKit 1.6, но, поскольку это произошло, я обновил Mailkit до 2.4, чтобы исправить это.

Ниже приведен код, который я использую для отправки электронных писем.

        using (var client = new SmtpClient())
        {
            client.LocalDomain = "smtp.office365.com";
            await client.ConnectAsync("smtp.office365.com", 587, SecureSocketOptions.StartTls).ConfigureAwait(false);
            client.Authenticate("EmailAddress", "Password");
            await client.SendAsync(emailMessage).ConfigureAwait(false);
            await client.DisconnectAsync(true).ConfigureAwait(false);
        }

Если кто-то сталкивался с этой проблемой или у вас есть идеи, как ее обойти, дайте мне знать!

Позвонили в Microsoft, чтобы подтвердить, что они не верят, что в данный момент у них возникли проблемы с обменными серверами.

ОБНОВИТЬ

После того, как дополнительные тесты подтвердили, я могу telnet к экземпляру office365 нормально. и я также могу отправить электронное письмо с помощью Powershell со следующим кодом

$msolcred = get-credential
Send-MailMessage –From emailaddress –To emailaddress  –Subject “Test Email” –Body “Test” -SmtpServer smtp.office365.com -Credential $msolcred -UseSsl -Port 587
0
Caz1224 14 Июн 2017 в 08:31

2 ответа

Это сообщение об ошибке исходит от вашего SMTP-сервера, а не от MailKit. Ошибка указывает на то, что это действительно временная проблема сервера.

Также обратите внимание: MailKit 2.4 не существует. Последняя версия - 1.16.1.

0
jstedfast 14 Июн 2017 в 15:17
Привет, jstedfast - Спасибо за ответ, вы правы, мой NuGet был мне не по зубам, несколько обновились, а версия avil вернулась к 1.16.1 - я надеялся, что это проблема mailkit без особых доказательств, как с Office 365, я могу влияют на серверы обмена, где я мог бы исправить проблему с почтовым пакетом! Возможно, это случилось с кем-то другим, или мне нужно надеяться, что MS исправит свою сторону.
 – 
Caz1224
15 Июн 2017 в 01:48
Только что подтвердил, что проблема в Mailkit. Выкатил его и заменил на .net mail STMPClient, и все снова работает.
 – 
Caz1224
15 Июн 2017 в 06:57
Затем отправьте отчет об ошибке и включите журнал протокола, чтобы его можно было отладить.
 – 
jstedfast
15 Июн 2017 в 15:06

Попробуйте добавить в следующую строку:

client.AuthenticationMechanisms.Remove("XOAUTH2");

Поэтому ваш код может быть:

    using (var client = new SmtpClient())
    {
        client.LocalDomain = "smtp.office365.com";
        await client.ConnectAsync("smtp.office365.com", 587, SecureSocketOptions.StartTls).ConfigureAwait(false);
        client.AuthenticationMechanisms.Remove("XOAUTH2");
        client.Authenticate("EmailAddress", "Password");
        await client.SendAsync(emailMessage).ConfigureAwait(false);
        await client.DisconnectAsync(true).ConfigureAwait(false);
    }
0
Rob Mensching 21 Июн 2017 в 06:48
Спасибо за предложение, я развернул Mailkit и заменил его стандартным протоколом .net SMTP, и это решило мою проблему. Мне очень понравились асинхронные вызовы в MailKit, но не стоило возиться с ними.
 – 
Caz1224
22 Июн 2017 в 02:05