2014-08-28 222 views
0

簡單地說,我想在我的mvc aspnet應用程序中發送一封電子郵件。我下面的操作方法:無法連接到遠程服務器,

SmtpClient mailClient = new SmtpClient("127.0.0.1"); 
NetworkCredential cred = new NetworkCredential("my mail address", "my password"); 
mailClient.Credentials = cred; 
MailMessage contact = new MailMessage(); 
contact.From = new MailAddress("my mail address"); 
contact.Subject = "Subject"; 
contact.IsBodyHtml = true; 
contact.Body = "Body"; 
mailClient.EnableSsl = true; 
contact.To.Add("someone's mail address"); 
mailClient.Send(contact); 

但當我嘗試這個,我得到了這樣的錯誤:

System.Net.Mail.SmtpException:{「發送郵件失敗」}

內部異常:{「無法連接到遠程服務器」}

我搜索了類似的解決方案,但他們說你需要設置憑據,但我確定我正確設置了憑據。此外,Windows防火牆已關閉。 在此先感謝。

+2

明顯的問題 - 你運行在本地計算機上的SMTP服務器? – 2014-08-28 08:18:03

+1

明顯的問題2.0 - 你允許連接SMTP端口(25或2525或587)嗎?連接可能被防火牆或SMTP服務器本身阻止。另外,你使用的是哪個端口?這是正確的嗎? – mg30rg 2014-08-28 08:26:16

回答

1

不好意思說出來,但你的例外已經非常明顯了!

它似乎是你在非SMTP服務器上嘗試它。設置一個,它應該工作。

=>System.Net.Mail.SmtpException : {"Failure sending mail."}

否則只是檢查您的網絡連接/ premission到服務器。

=>Inner Exception : {"Unable to connect to the remote server"}

+0

它(例外消息)並不一定意味着他沒有設置SMTP服務器。它**可能意味着他嘗試使用的SMTP端口被某些軟件(例如防火牆)阻止。這也可能意味着smtp服務器不在默認端口(25)上偵聽。明智的解決方案將嘗試通過telnet連接以測試連接是否可用。 – mg30rg 2014-08-28 08:34:13

+0

以及我沒想過試圖通過telnet連接......但它也沒有像你說的端口(25)! – user31911 2014-08-28 09:03:03

+2

我已經禁用了ssl並設置了根目錄587,現在它的工作原理非常感謝:) – melomg 2014-08-28 16:00:49