2011-02-17 187 views
3

我正在使用C#.NET 4.0,並希望發送電子郵件到主題和正文的地址,正文將包含我的應用程序中幾個文本框的一些信息。C#如何發送電子郵件?

我幾乎沒有使用C#發送電子郵件的經驗,所以這裏的任何幫助將不勝感激。我所知道的是你必須使用System.Net.Mail命名空間。我試過這段代碼,但它給了「Failure sending Mail」異常。

 new SmtpClient("smtp.server.com", 25).Send("[email protected]", 
             "[email protected]", 
             "subject", 
             "body"); 

上述代碼有什麼問題?此外,有沒有更好的方式發送電子郵件?

+1

有3422352232341的樣品大約#2和互聯網... – 2011-02-17 12:15:46

回答

1

我有三個著名的ISP的主機我的客戶的網站合作。所有三個ISP都指示我使用「localhost」作爲smtp服務器名稱。

8

你不能離開這個字符串:

smtp.server.com

你應該有你的SMTP服務器的名稱,通常是一些像mail.yourcompanyname.com或smtp.yourcompanyname .com

+0

在ASP.NET發送郵件嗯..我不知道是什麼的SMTP服務器。我該如何弄清楚我的是什麼,以及我有什麼端口? – david 2011-02-17 12:16:28

+0

如果你在公司內部,請詢問網絡管理員,如果你在私人辦公室檢查你的互聯網服務提供商的參數,如果你發現什麼都沒有創建一個Gmail帳戶,並檢查Gmail網站如何啓用,使用和配置與Gmail的smpt和pop3 。 – 2011-02-17 12:18:01

+0

我已經想通了。不過謝謝你的幫助。 – david 2011-02-17 12:20:55

2

smtp.server.com是否真的是SMTP服務器?你需要用真實的替換它。您的ISP可能會爲您提供一個,但它可能只會轉發源自您的ISP擁有的地址的電子郵件。

16

可能是您的身份驗證(憑據)或服務器名稱/端口不正確。

試試這個:

 MailMessage mailMsg = new MailMessage(); 
     mailMsg.To.Add("[email protected]"); 
        // From 
     MailAddress mailAddress = new MailAddress("[email protected]"); 
     mailMsg.From = mailAddress; 

     // Subject and Body 
     mailMsg.Subject = "subject"; 
     mailMsg.Body = "body"; 

     // Init SmtpClient and send on port 587 in my case. (Usual=port25) 
     SmtpClient smtpClient = new SmtpClient("mailserver", 587); 
     System.Net.NetworkCredential credentials = 
      new System.Net.NetworkCredential("username", "password"); 
     smtpClient.Credentials = credentials; 

     smtpClient.Send(mailMsg); 
0

補充一點:

SmtpServer.EnableSsl = true;