2015-04-23 17 views
0

無法使用此代碼發送電子郵件, 拋出異常「The Operation has time out。」 代碼:如何用c#發送電子郵件,端口號爲465,ssl爲「true」

MailMessage mailMessage = new MailMessage(); 
mailMessage.To.Add(new MailAddress("[email protected]"); 
mailMessage.From = new MailAddress("[email protected]", "No-Reply"); 
mailMessage.Subject = "Test Mail"; 
mailMessage.Body = "E-Mail Testing..........."; 
mailMessage.IsBodyHtml = true; 

SmtpClient client = new SmtpClient(); 
//client.Timeout = 200000; 
client.UseDefaultCredentials = false; 
client.Credentials = 
    new System.Net.NetworkCredential("[email protected]", "--Password--"); 
client.Port = 465; 
client.Host = "mail.domainName.com.np"; 
client.DeliveryMethod = SmtpDeliveryMethod.Network; 
client.EnableSsl = true; 
client.Send(mailMessage); 
+3

您指定了'ssl = True'。服務器上是否配置了SSL? – JunaidKirkire

+0

任何數量的原因都可能導致此問題,服務器可能無法訪問,端口可能未打開,服務器可能沒有配置SSL。我建議試着看看你的數據是否使用wireshark這樣的工具發送, – Clint

+0

考慮使用TLS端口,可能是'587'。 – mwilczynski

回答

0

EnableSsl選項不會隱式地使用SSL。這意味着它在連接後不會立即開始SSL協商。

EnableSsl選項將啓用顯式SSL。這意味着將使用STARTTLS命令與服務器協商SSL,如RFC 3207中所述。

System.Net.Mail不支持隱式SSL。您可以從服務器獲得另一個端口,您可以使用顯式SSL。否則,你必須重新配置你的服務器。

0

是否有其他方法通過c#中的應用程序發送電子郵件?

相關問題