2010-04-04 201 views
3

我在這裏做錯了什麼?代碼發送電子郵件

private void SendMail(string from, string body) 
    { 
     string mailServerName = "plus.pop.mail.yahoo.com"; 
     MailMessage message = new MailMessage(from, "[email protected]", "feedback", body); 
     SmtpClient mailClient = new SmtpClient(); 
     mailClient.Host = mailServerName; 
     mailClient.Send(message); 
     message.Dispose(); 
    } 

我得到了以下錯誤:

連接嘗試失敗,因爲連接的方沒有正確一段時間後響應或已建立的連接失敗,因爲連接的主機未能響應209.191.108.191: 25

回答

5

您正在使用wrong server。您將需要使用SMTP設置。

試試這臺服務器:plus.smtp.mail.yahoo.com他們的站點將此主機記錄爲SSL。

private void SendMail(string from, string body) 
{ 
    string mailServerName = "plus.smtp.mail.yahoo.com"; 
    int mailServerPort = 465; 
    string toAddress = "[email protected]"; 
    string subject = "feedback"; 

    string username = "user"; 
    string password = "password"; 

    SmtpClient mailClient = new SmtpClient(mailServerName, 
              mailServerPort); 
    mailClient.Host = mailServerName; 
    mailClient.Credentials = new NetworkCredential(username, 
                password); 
    mailClient.EnableSsl = true; 

    using (MailMessage message = new MailMessage(from, 
               toAddress, 
               subject, 
               body)) 
     mailClient.Send(message); 
} 
+0

用戶名和密碼應該是發件人密碼? – aherlambang 2010-04-04 17:17:56

+0

我還收到以下錯誤: 現有連接被遠程主機強制關閉 – aherlambang 2010-04-04 17:19:20

+0

是的,用戶名和密碼必須是發件人的密碼。用戶名可能需要是您的電子郵件地址。您也可以嘗試刪除SSL和登錄,但這取決於雅虎。我沒有與他們的帳戶,所以我不能爲你測試它。 – 2010-04-04 18:59:42

5

您需要使用SMTP服務器,看起來像您使用的是POP3服務器。

0

要使用Yahoo郵件服務器發送電子郵件,您需要在SmtpClient實例上設置EnableSSL = true。

您還需要使用正確的端口是465

有這個網站很多教程,這實際上涉及如何使用System.Net.Mail命名空間: