Je travaille sur un projet où l'une des exigences est de réécrire une application ASP.NET. L'ancienne application ASP.NET était basée sur .NET Framework 1.1. La nouvelle application ASP.NET est basée sur .NET Framework 3.5.ASP.NET - SmtpClient - Impossible de se connecter au serveur distant
L'une des fonctions de l'ancienne application Web était la possibilité d'envoyer des courriels. L'ancien code utilisait la classe System.Web.Mail.SmtpMail
, tandis que la nouvelle application Web utilisait la classe System.Net.Mail.SmtpClient
. En testant ceci sur nos serveurs de développement, tout a bien fonctionné. Cependant, nous avons deux clients bêta testant notre logiciel, et ils rencontrent tous les deux des problèmes d'envoi de courrier électronique dans la nouvelle application web.
L'exception spécifique est la suivante:
Impossible de se connecter au serveur distant ---> System.Net.Sockets.SocketException: il n'a pu être connexion parce que la machine cible activement refusé
Les anciennes et nouvelles applications ASP.NET sont sur le même serveur (Windows Server 2003). Ils utilisent tous les deux le même serveur de messagerie Exchange. Pourquoi est-ce que l'ancienne application ASP.NET peut envoyer un courrier électronique avec succès, mais le nouveau ne le peut pas? J'ai regardé l'ancien code, et il n'a utilisé aucune forme d'authentification, il a simplement spécifié l'adresse e-mail de l'expéditeur, l'adresse e-mail du destinataire, l'objet, le corps et le serveur, et envoyé le message. J'ai fait la même chose avec le nouveau code, la seule différence étant que j'ai utilisé la classe SmtpClient.
Voici un extrait de code de la nouvelle application ASP.NET:
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
mail.To.Add(messageTo);
mail.From = new MailAddress(messageFrom);
mail.Subject = messageSubject;
mail.Body = messageBody;
SmtpClient client = new SmtpClient();
client.Host = smtpServer;
client.Send(mail);
Y a-t-il quelque chose dans les journaux Exchange qui indique qu'il refuse la connexion? – David
Je n'y ai pas accès et je ne pense pas que le client beta puisse y avoir accès non plus. Encore une fois, cela a bien fonctionné de notre côté. C'est une fonctionnalité assez basique. – Chris
Comment spécifiez-vous le serveur? dans le constructeur du SmptClient, ou dans web.config? pouvez-vous poster du code? – onof