2017-06-14 1 views
0

J'ai utilisé Mailkit dans mes webapps C# depuis un moment. Jamais eu de problèmes avant, mais aujourd'hui j'ai commencé à obtenir l'erreur suivante lorsque je tente d'envoyer:C# Mail Kit - Office 365 - Server numéro

AuthenticationException: ErrorInProcessing: 4.7.0 Erreur serveur temporaire. Veuillez réessayer plus tard. PRX4 [SYXPR01CA0117.ausprd01.prod.outlook.com] Authentifier

je courais à l'origine de 1,6 MailKit mais comme cela est arrivé, je l'ai mis à jour Mailkit à 2,4 pour tenter de résoudre ce problème.

Voici le code que j'utilise pour envoyer des courriels.

 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); 
     } 

Si quelqu'un a rencontré ce problème ou a des idées pour le contourner, faites le moi savoir!

Appelé Microsoft pour confirmer qu'il ne croyait pas avoir de problèmes avec ses serveurs Exchange pour le moment.

MISE À JOUR

Après plus de tests ont confirmé que je peux telnet à l'instance de Office365 bien. et je peux aussi envoyer un e-mail en utilisant Powershell avec le code suivant

$msolcred = get-credential 
Send-MailMessage –From emailaddress –To emailaddress –Subject “Test Email” –Body “Test” -SmtpServer smtp.office365.com -Credential $msolcred -UseSsl -Port 587 

Répondre

0

Ce message d'erreur vient de votre serveur SMTP et non MailKit. L'erreur semble indiquer qu'il s'agit bien d'un problème de serveur temporaire.

À noter également: MailKit 2.4 n'existe pas. La dernière version est 1.16.1.

+0

Hey jstedfast - Merci pour la réponse, à droite mon NuGet a été bonking sur moi, quelques rafraîchie et la version avil est redescendue à 1.16.1 - J'espérais que c'était un problème de mailkit sans beaucoup de preuves car avec Office 365 je peux affecter les serveurs d'échange où j'aurais pu corriger un problème de mailkit! Peut-être que quelqu'un d'autre l'a fait, ou bien je dois espérer que MS se fasse corriger. – Caz1224

+0

Juste confirmé Mailkit était le problème. Il a été déployé et remplacé par le mail STMPClient .net et tout fonctionne à nouveau. – Caz1224

+0

Ensuite, veuillez soumettre un rapport de bogue et inclure un protocole de protocole afin qu'il puisse être débogué. – jstedfast

0

Essayez d'ajouter à la ligne suivante:

client.AuthenticationMechanisms.Remove("XOAUTH2"); 

de sorte que votre code pourrait être:

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

Merci pour la suggestion, j'ai déployé Mailkit et l'a remplacé avec le .net SMTP standard et qui a résolu mon problème. J'ai bien aimé les appels asynchrones dans MailKit, mais ça ne valait pas la peine de se bourrer. – Caz1224