2015-11-06 116 views
0

我有一些代碼只能與我的 SMTP主機域但不是其他域。它似乎發送,但它實際上並沒有發送任何東西,也沒有拋出任何異常。不能發送電子郵件到其他域

SmtpClient mailClient = new SmtpClient(); 
mailClient.UseDefaultCredentials = false; 
mailClient.Port = 587; 

mailClient.EnableSsl = false; 
mailClient.DeliveryMethod = SmtpDeliveryMethod.Network; 
mailClient.Host = "mail.smtpserver.com"; 



System.Net.NetworkCredential cred = new System.Net.NetworkCredential("[email protected]", "password"); 

mailClient.Credentials = cred; 



MailMessage message = new MailMessage(); 

message.From = new MailAddress("[email protected]"); 
message.To.Add("[email protected]"); 

message.Subject = "Subject"; 
message.Body = "Body"; 

mailClient.Timeout = 200000; 

mailClient.Send(message); 

我認爲問題不檢查的NetworkCredential ...

+0

是正確的端口爲您的郵件服務器? –

回答

0

我建議你嘗試發送一個測試郵件的「其他」 SMTP服務器使用telnet,以確保它的工作原理。

您的smtp端口不是默認的端口,所以它可能會被防火牆阻止。

+0

其實我改變了2個其他網絡與2個不同的防火牆規則,但是沒有錯誤是相同的。如果我將郵件發送到「[email protected]」,它可以工作,但其他人則無效。 – Enyd1234

0

一般來說,如果你正在使用端口587,然後就是SSL加密SMTP - 所以你需要改變你的代碼,以便建立連接時使用它:

mailClient.EnableSsl = true; 
相關問題