2010-12-01 14 views
4

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?

+0

est-ce que votre ordinateur peut reconnaître mail.trackyt.net? essayez d'utiliser l'adresse IP sur votre variable hôte. – hallie

+0

oui, vous pouvez voir dans exception, il a résolu OK - 173.248.182.102:25 –

+0

Quelle adresse IP est l'écoute du serveur de messagerie? – jgauffin

Répondre

3

Faites-vous cela à la maison? Un grand nombre d'ISP bloquent le port sortant 25.

Dans smartermail, vous pouvez ajouter un écouteur SMTP pour un autre port. Essayez d'en ajouter un pour 587, et voyez si vous pouvez vous y connecter (en supposant que vous ayez les droits d'administrateur pour le faire).

--dave

+0

droite, je le fais de la maison .. vais essayer un autre port maintenant! –

+0

Dieu vous bénisse homme, vous m'a sauvé beaucoup de temps et nerveux! –

+0

Super! Je suis content que vous ayez pu le résoudre. –