2017-03-05 50 views
0

我試圖從我的網站發送電子郵件。「無法連接到遠程服務器」錯誤

這是我的代碼:

public string SendEmail() 
    { 
    string sMessage; 
    SmtpClient smtpClient = new SmtpClient("mail.test.com",25); 
    MailMessage message = new MailMessage(); 
    try 
     { 
     smtpClient.Credentials = new System.Net.NetworkCredential("web", "test1234", "myDomain"); 
     MailAddress fromAddress = new MailAddress("[email protected]", "web"); 

     message.From = fromAddress; 
     message.To.Add("[email protected]"); 
     message.Subject = "test"; 
     message.Body = "TEST"; 
     message.IsBodyHtml = true; 
     smtpClient.EnableSsl = false; 
     smtpClient.Send(message); 
     sMessage = "Email sent."; 
     } 
     catch (Exception ex) 
     { 
      sMessage = "Coudn't send the message!\n " + ex.Message; 
     } 
     return ""; 
    } 

但我發現了以下錯誤:

"Unable to connect to the remote server"

數據(主機名,端口,證書)是正確的,我檢查了它的幾個SMTP檢查器(例如this one),它工作正常。

我什麼都試過了我在網上找到:

smtpClient.UseDefaultCredentials = false; 
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 

而且不同的端口,但沒有任何幫助,我不斷收到錯誤。

我在做什麼錯?我錯過了什麼嗎?

+0

您是否檢查防火牆? – Sybren

+0

@Sybren是的,我查過了,它的25號碼頭開放。 – user3378165

回答

0

相反的:

smtpClient.Credentials = new System.Net.NetworkCredential("web", "test1234", "myDomain"); 

嘗試:

smtpClient.Credentials = new System.Net.NetworkCredential("emailaddress", "password"); 

這裏是任務的一個例子,我用它來發送電子郵件:

public Task SendEmail(string email, string subject, string body) 
{ 
try 
{ 
var mailClient = new SmtpClient 
{ 
Host = "mail.mydomain.com", 
Credentials = new NetworkCredential("[email protected]", "mypasword"), 
Port = myport, 
DeliveryMethod = SmtpDeliveryMethod.Network 
}; 

var msg = new MailMessage("from email", email, subject,body) {IsBodyHtml = true}; 
mailClient.Send(msg); 

return Task.FromResult(0); 
} 
catch (Exception ex) 
{ 
return null; 
} 
} 
0

我有同樣的問題。控制檯應用程序使用系統的代理,但Web應用程序不...您可能會錯過設置客戶端服務對象的代理屬性。我的問題是通過這種方式解決的。希望它會有幫助。

0

使用類似的模式,我的其餘客戶端正在調用服務API,該服務在調試時調用成功,但未在發佈的代碼上工作。 錯誤是:無法連接到遠程服務器。

內部異常:System.Net.Sockets.SocketException(0X80004005):無連接可以作出,因爲目標機器積極地拒絕它serviceIP:443 在System.Net.Sockets.Socket.DoConnect(端點endPointSnapshot,爲SocketAddress爲SocketAddress) 在System.Net.ServicePoint.ConnectSocketInternal(布爾connectFailure,插座S4,S6插座,插座&插座,ip地址&地址,ConnectSocketState狀態,IAsyncResult的asyncResult,異常&除外)

分辨率:設置代理在Web配置中。

<system.net> 
    <defaultProxy useDefaultCredentials="true"> 
     <proxy proxyaddress="http://proxy_ip:portno/" usesystemdefault="True"/> 
    </defaultProxy> 
</system.net> 
相關問題