string mailContent="郵件內容";
MailMessage msg = new System.Net.Mail.MailMessage();
msg.To.Add("******@gmail.com"); //收件者
//寄件者資訊
msg.From = new MailAddress("*****@gmail.com", "發送人姓名", System.Text.Encoding.UTF8);
msg.Subject = "這是測試郵件"; //郵件標題
msg.SubjectEncoding = System.Text.Encoding.UTF8; //標題編碼
msg.Body = mailContent; //郵件主體
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true; //是否HTML
msg.Priority = MailPriority.High; //優先順序
SmtpClient client = new SmtpClient();
//設定GMail郵箱和密碼
client.Credentials = new System.Net.NetworkCredential("帳號@gmail.com", "密碼");
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
object userState = msg;
try
{
client.Send(msg);
MessageBox.Show("發送成功");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "發送郵件出錯");
}
這裡的重點是郵箱身分識別驗證那個地方,一定不能寫錯,否則,郵件發送不出去。到這裡,似乎是大功告成了,但是,你會發現,相同的程式,在某些機器上可以發送 成功,在某些機器上發送總是失敗,是系統的原因?似乎不是,因為相同的系統,也是有的發送成功,有的發送失敗。那是,架構的原因?似乎也不是。
這裡就有一個很令人迷惑的現象出現,同樣的系統,同樣的架構,還是有的能發送成功,有的發送失敗。失敗的具體原因說是郵件標題編碼有錯誤。那麼,我們去掉Subject,不寫,用預設的可以嗎?也是一樣的。
簡單總結一下:
1、使用SmtpClient寄送電子郵件是很簡單的,只要正確建立了MailMessage對象和SmtpClient就可以很容易的發送出去電子郵件。
2、如果電子郵件伺服器需要身分識別驗證【似乎現在都需要身分識別驗證,除非自己配置的】,注意下面這句話:
smtpClient.Credentials = new System.Net.NetworkCredential("帳號@gmail.com", "密碼");
3、機器名不能使用中文。
轉自:http://www.cnblogs.com/xieqixiang/archive/2009/08/05/1539611.html