J'ai configuré et exécuté le serveur SmarterEmail, exécutant le service SMTP pour un compte de messagerie configuré à 25 ports.Échec de l'envoi d'un message SMTP par SmtpClinet (serveur SmarterEmail)
J'ai créé application simple .NET pour envoyer des courriels par mon serveur de messagerie, il est très simple:
public void SendEmail(EmailMessage message, string username, string password, string host, int port, bool enableSsl)
{
MailMessage mm = new MailMessage(message.From, message.To, message.Subject, message.Message);
NetworkCredential credentials = new NetworkCredential(username, password);
SmtpClient sc = new SmtpClient(host, 25);
sc.DeliveryMethod = SmtpDeliveryMethod.Network;
sc.UseDefaultCredentials = false;
sc.EnableSsl = enableSsl;
sc.Credentials = credentials;
sc.Send(mm);
}
Cette application a échoué à l'exception:
Exception non gérée: System.Net .Mail.SmtpException: échec d'envoi de courrier. ---> S ystem.Net.WebException: Impossible de se connecter au serveur distant ---> System.Net.S ockets.SocketException: Une tentative de connexion a échoué car la partie connectée n'a pas correctement répondu après une période de temps, ou une connexion établie Faile d parce hôte connecté n'a pas répondu à 173.248.182.102:25 System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, SocketAddre ss SocketAddress) à System.Net.ServicePoint.ConnectSocketInternal (Boolean connectFailure, Sock et s4, Socket s6, Socket & socket, adresse IP & adresse, état ConnectSocketState, IAsyncResult asyncResult, délai Int32, exception.210 exception) --- Fin de trace de pile d'exception interne --- à System.Net.ServicePoint.GetConnection (PooledStream PooledStream, objet oe ner, async Boolean, adresse IPAddress &, Socket & abortSocket, Socket & 6 abortSocket , temporisation Int32) à System.Net.PooledStream.Activate (Object owningObject, async Boolean, Int32 temporisation , GeneralAsyncDelegate AsyncCallback) à System.Net.PooledStream.Activate (Object owningObject, GeneralAsyncDelegate AsyncCallback) à System.Net. ConnectionPool.GetConnection (Object owningObject, GeneralAsyncD elegate asyncCallback, Int32 créationTimeout) à System.Net.Mail.SmtpConnection.GetConnection (ServicePoint ServicePoint) à System.Net.Mail.SmtpTransport.GetConnection (ServicePoint ServicePoint) à System.Net.Mail.SmtpClient.GetConnection() à System.Net.Mail .SmtpClient.Send (message MailMessage) --- Fin de trace de pile d'exception interne --- à System.Net.Mail.SmtpClient.Send (message MailMessage) à SendMail.MailService.SendEmail (message EmailMessage, nom d'utilisateur de chaîne, Stri ng mot de passe, hôte de la chaîne, port Int32, Boolean enableSsl) dans D: \ Développement \ Proje cts \ Expériences \ SendMail \ SendMail \ Program.cs: ligne 36 à SendMail.Program.Main (String [] args) dans D: \ Développement \ Projets \ Expérience s \ SendMail \ SendMail \ Program.cs: ligne 52
Serveur de messagerie: mail.trackyt.net, port = 25, SSL = false. Cela ne fonctionne pas avec ma machine (locale).
Dans le même temps, si je copie cette application à la machine étaient SmarterEmail (à distance) est en cours d'exécution, il fonctionne avec succès!
Je pensais qu'il est bloqué par le pare-feu, activé 25 sur la machine distante - même résultat. Pare-feu désactivé, à la fois localement et à distance machine - même résultat.
diagnostic supplémentaires:
Exécuter le test SMTP par http://pingability.com/smtptest.jsp:
EHLO pingability.com 250 MAST-WIN2K8R2-STD Bonjour [207.210.209.134] 250 TAILLE 31457280 250-AUTH LOGIN CRAM-MD5 250 OK DEBUG SMTP: extension trouvée "SIZE", argument "31457280" DEBUG SMTP: extension trouvée "AUTH", argument "LOGIN CRAM-MD5" DEBUG SMTP: extension trouvée "OK", arg " " DEBUG SMTP: Tentative d'authentifier DEBUG SMTP: vérifier les mécanismes: LOGIN PLAIN DIGEST-MD5 NTLM AUTH LOGIN 334 VXNlcm5hbWU6 c3VwcG9ydA == 334 UGFzc3dvcmQ6 c3VwcG9ydDEyMw == 235 authentification réussie
Il dit que SMTP est OK.
Telnet de ma machine:
Microsoft Telnet> o mail.trackyt.net 25 Connexion à mail.trackyt.net ... Impossible de connexion ouverte à l'hôte, sur le port 25: Se connecter Échec
Le même telnet de la machine SmarterMail est OK.
Des idées?
est-ce que votre ordinateur peut reconnaître mail.trackyt.net? essayez d'utiliser l'adresse IP sur votre variable hôte. – hallie
oui, vous pouvez voir dans exception, il a résolu OK - 173.248.182.102:25 –
Quelle adresse IP est l'écoute du serveur de messagerie? – jgauffin