2010-12-01 325 views
4

我已配置並運行SmarterEmail服務器,爲25端口運行SMTP服務,配置了電子郵件帳戶。SMTP通過SmtpClinet(SmarterEmail服務器)發送電子郵件失敗

我創建了簡單的.NET應用程序通過我的電子郵件服務器發送電子郵件,這是非常簡單的:

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

此應用程序失敗,異常:

未處理的異常:System.Net .Mail.SmtpException:發送郵件失敗。 ---> S ystem.Net.WebException:無法連接到遠程服務器---> System.Net.S ockets.SocketException:連接嘗試失敗,因爲連接方 在一段時間後沒有正確響應時間或已建立的連接失敗 d因爲連接的主機未能響應System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,SocketAddre ss socketAddress)上的173.248.182.102:25 System.Net.ServicePoint.ConnectSocketInternal( Boolean connectFailure,Sock et s4,Socket s6,Socket & socket,IPAddress & address,ConnectSocketState狀態, IAsyncResult asyncResult,Int32超時,異常&除外) ---在System.Net.ServicePoint.GetConnection內部異常堆棧跟蹤--- 結束(PooledStream PooledStream,對象流 NER,布爾異步,ip地址&地址,插座& abortSocket,插座& abortSocket 6 ,的Int32超時) 在System.Net.PooledStream.Activate(對象owningObject,布爾異步,的Int32 超時,GeneralAsyncDelegate的AsyncCallback) 在System.Net.PooledStream.Activate(對象owningObject,GeneralAsyncDelegate 的AsyncCallback) 在System.Net。 ConnectionPool.GetConnection(Object owningObject,GeneralAsyncD elegate asyncCallback,Int32 creationTimeout) at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint) at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint) at System.Net.Mail.SmtpClient.GetConnection() at System.Net.Mail .SmtpClient.Send(MailMessage消息) ---內部異常堆棧跟蹤的末端--- 位於System.Net.Mail.SmtpClient.Send(MailMessage消息) 位於SendMail.MailService.SendEmail(EmailMessage消息,字符串用戶名, D:\ Development \ Proje cts \ Experiments \ SendMail \ SendMail \ Program.cs:第36行 在SendMail.Program.Main(String [] args)中的密碼,字符串主機,Int32端口,布爾enableSsl中的字符串Stri D:\ Development \ Projects \ Experiment s \ SendMail \ SendMail \ Program.cs:line 52

郵件服務器:mail.trackyt.net,端口= 25,SSL = false。它不適用於我的(本地)機器。

與此同時,如果我將此應用程序複製到機器上,則SmarterEmail(遠程)正在運行,它成功運行!

我認爲它被防火牆阻止,在遠程機器上啓用25 - 結果相同。 已禁用防火牆,本地和遠程機器 - 結果相同。

其它診斷:

運行SMTP測試通過http://pingability.com/smtptest.jsp

EHLO pingability.com 250 MAST-WIN2K8R2-STD你好[207.210.209.134] 250-SIZE 31457280 250-AUTH登錄CRAM-MD5 250 OK DEBUG SMTP:找到擴展名「SIZE」,arg「31457280」 DEBUG SMTP:找到擴展名「AUTH」,arg「LOGIN CRAM-MD5」 DEBUG SMTP:找到擴展名「OK」 「 DEBUG SMTP:嘗試驗證 DEBUG SMTP:檢查機制:登錄PLAIN DIGEST-MD5 NTLM AUTH LOGIN 334 VXNlcm5hbWU6 c3VwcG9ydA == 334 UGFzc3dvcmQ6 c3VwcG9ydDEyMw == 235認證成功

它說, SMTP是好的。從我的機器

遠程登錄:

微軟的Telnet> 0 mail.trackyt.net 25 連接到mail.trackyt.net ......無法打開連接到主機,端口 25:連接失敗

從SmarterMail機器的相同的telnet是確定的。

任何想法?

+0

你電腦能識別mail.trackyt.net嗎?嘗試在您的主機變量上使用IP地址。 – hallie 2010-12-01 07:36:20

+0

是的,你可以看到異常,它解決了 - 173.248.182.102:25 – 2010-12-01 07:43:34

回答

3

你是從家裏做這個嗎?許多ISPs阻止出站端口25.

在smartermail中,您可以爲另一個端口添加一個SMTP偵聽器。嘗試爲587添加一個,並查看是否可以連接到它(假設您有管理員權限來執行此操作)。

--dave

相關問題