L'envoi d'e-mail à l'aide de Smtp.mail.microsoftonline.com

Le contexte:

Nous sommes une petite entreprise qui ne dispose pas d'un Serveur Exchange (ou quelqu'un dédié à cela), mais nous avons encore besoin d'avoir/envoyer des e-mails.

Nous avons décidé d'utiliser Microsoft Online Services (MOS)


L'Objectif:

Nous avons un serveur web (Windows Server 2003 R2 avec IIS 6.0) et ont déployé une C# ASP.Net MCV application.

L'application web a besoin d'envoyer des mails à chaque fois qu'un utilisateur crée un compte.

Selon la la documentation nous avons besoin pour utiliser le port (587) et assurez-vous que la Sécurité de Couche Transport (TLS) activer. En outre, l'adresse utilisée doit être de type “Autoritaire” qui c'est lorsque je double-vérifier via le Microsoft En Ligne Le Centre D'Administration


Le code:

Le code C# j'ai devrait être trivial et est la suivante:

SmtpClient server = new SmtpClient("Smtp.mail.microsoftonline.com");
server.Port = 587;
server.EnableSsl = true;
server.Credentials = new System.Net.NetworkCredential("[email protected]", "123abc");
server.UseDefaultCredentials = false;

MailMessage mail = new MailMessage();
mail.From = new MailAddress("[email protected]");
mail.To.Add("[email protected]");
mail.Subject = "test subject";
mail.Body = "this is my message body";
mail.IsBodyHtml = true;

try
{
    server.Send(mail);
}
catch (Exception ex)
{
    throw ex;
}

L'erreur:

J'ai créé une simple application winform avec le code ci-dessus pour tester l'envoi d'e-mails...
J'ai testé l'application winform en local sur mon ordinateur (Windows XP) et sur le Serveur.

Dans les deux tenter, je reçois le message d'erreur suivant:

Le serveur SMTP nécessite une connexion sécurisée ou le client n'est pas authentifié. La réponse du serveur est: 5.7.1 le Client n'est pas authentifié.

Après Googler pour un certain temps, je n'ai toujours pas trouvé la raison pour laquelle...] En outre, la plupart des réponses que j'ai trouvé sont de faire référence à la Console de Gestion Exchange qui nous semblent ne pas avoir (ou installé) donc pourquoi nous sommes à l'aide de Microsoft Online Services...


Questions:

1) en tant Que client de paiement de MOS, ma première idée est que je ne devrais pas avoir à installer (ou ont) une Console de Gestion Exchange sur notre serveur...en fait, ce devrait être complètement hors de propos dans le but de réaliser ma tâche.

2) j'ai aussi essayé activation TLS à l'intérieur de notre IIS 6.0, mais en vain...

3) Nous sommes à saisir les pailles ici parce que ce qui nous semble ne ressemble à quelque chose incroyablement banal...

4) Doit-on simplement abandonner l'idée d'utiliser des MOS du serveur SMTP et en utiliser un autre? Tels que Gmail ? Si oui...alors pourquoi s'embêter à payer une redevance mensuelle pour les MOS?

Si quelqu'un a toute aide/conseils qui peuvent m'aider à faire la lumière sur cela, ce serait génial!

Sincèrement
Vince



WOW...je crois que nous avons trouvé la coupable!!!

En commentant cette ligne de code:

//server.UseDefaultCredentials = false;

Tout a commencé à travailler!

Je suis maintenant en mesure d'envoyer des e-mails à l'intérieur et à l'extérieur de notre domaine...

Ce qui me énigmes le plus, c'est que, selon la documentation, la valeur par défaut de cette UseDefaultCredentials propriété est définie à faux

Donc...quand je le paramétrer manuellement à faux il ne fonctionne pas, mais quand je commente la ligne (ce qui est également mis à false en raison de sa valeur par défaut), il fonctionne!

Si c'est un problème connu ou si quelqu'un a une réponse à ça, je serais curieux de savoir!

Le code semble correct. Dirait le nom d'utilisateur et/ou mot de passe est erroné. Lien
Comment Sécurité de la Couche Transport (TLS) activer ?

OriginalL'auteur Vlince | 2011-07-11