最近公司由于一個R&I項目的需要,用戶要求在購買產品或出貨等一些環節,需要發送郵件提醒或者說每周一讓系統自動采集數據發送一封E-mail,因此我也就找來相關資料,寫了一個Demo分享給大家,大家共同學習學習。
通過.Net FrameWork 2.0下提供的“System.Net.Mail”可以輕松的實現,本文列舉了3種途徑來發送:
1.通過Localhost;
2.通過普通SMTP;
3.通過SSL的SMTP;
下面一個一個來說:
[html]
??
?? public void SendMailLocalhost()??
{??
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();??
msg.To.Add("
a@a.com
");??
msg.To.Add("
b@b.com
");??
/* msg.To.Add("
b@b.com
");??
* msg.To.Add("
b@b.com
");??
* msg.To.Add("
b@b.com
");可以發送給多人??
*/??
msg.CC.Add(
c@c.com
);??
/*??
* msg.CC.Add("
c@c.com
");??
* msg.CC.Add("
c@c.com
");可以抄送給多人??
*/??
msg.From = new MailAddress("
a@a.com
", "AlphaWu", System.Text.Encoding.UTF8);??
/* 上面3個參數分別是發件人地址(可以隨便寫),發件人姓名,編碼*/??
msg.Subject = "這是測試郵件";//郵件標題??
msg.SubjectEncoding = System.Text.Encoding.UTF8;//郵件標題編碼??
msg.Body = "郵件內容";//郵件內容??
msg.BodyEncoding = System.Text.Encoding.UTF8;//郵件內容編碼??
msg.IsBodyHtml = false;//是否是HTML郵件??
msg.Priority = MailPriority.High;//郵件優先級?
??
SmtpClient client = new SmtpClient();??
client.Host = "localhost";??
object userState = msg;??
try??
{??
client.SendAsync(msg, userState);??
//簡單一點兒可以client.Send(msg);??
MessageBox.Show("發送成功");??
}??
catch (System.Net.Mail.SmtpException ex)??
{??
MessageBox.Show(ex.Message, "發送郵件出錯");??
}??
}?
??? public void SendMailLocalhost()??
{??
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();??
msg.To.Add("
a@a.com
");??
msg.To.Add("
b@b.com
");??
/* msg.To.Add("
b@b.com
");??
* msg.To.Add("
b@b.com
");??
* msg.To.Add("
b@b.com
");可以發送給多人??
*/??
msg.CC.Add(
c@c.com
);??
/*??
* msg.CC.Add("
c@c.com
");??
* msg.CC.Add("
c@c.com
");可以抄送給多人??
*/??
msg.From = new MailAddress(
master@boys90.com
, "dulei", System.Text.Encoding.UTF8);??
/* 上面3個參數分別是發件人地址(可以隨便寫),發件人姓名,編碼*/??
msg.Subject = "這是測試郵件";//郵件標題??
msg.SubjectEncoding = System.Text.Encoding.UTF8;//郵件標題編碼??
msg.Body = "郵件內容";//郵件內容??
msg.BodyEncoding = System.Text.Encoding.UTF8;//郵件內容編碼??
msg.IsBodyHtml = false;//是否是HTML郵件??
msg.Priority = MailPriority.High;//郵件優先級?
SmtpClient client = new SmtpClient();??
client.Host = "localhost";??
object userState = msg;??
try??
{??
client.SendAsync(msg, userState);??
//簡單一點兒可以client.Send(msg);??
MessageBox.Show("發送成功");??
}??
catch (System.Net.Mail.SmtpException ex)??
{??
MessageBox.Show(ex.Message, "發送郵件出錯");??
}??
}?
?
2.通過普通SMTP C#代碼如下
[html]
public void SendMailUseZj()????
{????
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();????
msg.To.Add(
a@a.com
);????
msg.To.Add(
b@b.com
);????
/*???
* msg.To.Add("
b@b.com
");???
* msg.To.Add("
b@b.com
");???
* msg.To.Add("
b@b.com
");可以發送給多人???
*/????
msg.CC.Add("
c@c.com
");????
/*???
* msg.CC.Add("
c@c.com
");???
* msg.CC.Add("
c@c.com
");可以抄送給多人???
*/????
msg.From = new MailAddress("
master@boys90.com
", "dulei", System.Text.Encoding.UTF8);????
/* 上面3個參數分別是發件人地址(可以隨便寫),發件人姓名,編碼*/????
msg.Subject = "這是測試郵件";//郵件標題????
msg.SubjectEncoding = System.Text.Encoding.UTF8;//郵件標題編碼????
msg.Body = "郵件內容";//郵件內容????
msg.BodyEncoding = System.Text.Encoding.UTF8;//郵件內容編碼????
msg.IsBodyHtml = false;//是否是HTML郵件????
msg.Priority = MailPriority.High;//郵件優先級????
???
? SmtpClient client = new SmtpClient();???
client.Credentials = new System.Net.NetworkCredential("
dulei@71info.com
", "userpass");????
//在71info.com注冊的郵箱和密碼????
client.Host = "smtp.71info.com";????
object userState = msg;????
try????
{????
client.SendAsync(msg, userState);????
//簡單一點兒可以client.Send(msg);????
MessageBox.Show("發送成功");????
}????
catch (System.Net.Mail.SmtpException ex)????
{????
MessageBox.Show(ex.Message, "發送郵件出錯");????
}????
}??
?
3.通過SSL的SMTP
[html]
public void SendMailUseGmail()????
{????
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();????
msg.To.Add(
a@a.com
);????
msg.To.Add(
b@b.com
);????
/*???
?msg.To.Add("
b@b.com
");???
* msg.To.Add("
b@b.com
");???
* msg.To.Add("
b@b.com
");可以發送給多人???
*/????
msg.CC.Add(
c@c.com
);????
/*???
* msg.CC.Add("
c@c.com
");???
* msg.CC.Add("
c@c.com
");可以抄送給多人???
*/????
msg.From = new MailAddress("boys90.com", "dulei", System.Text.Encoding.UTF8);????
/* 上面3個參數分別是發件人地址(可以隨便寫),發件人姓名,編碼*/????
msg.Subject = "這是測試郵件";//郵件標題????
msg.SubjectEncoding = System.Text.Encoding.UTF8;//郵件標題編碼????
msg.Body = "郵件內容";//郵件內容????
msg.BodyEncoding = System.Text.Encoding.UTF8;//郵件內容編碼????
msg.IsBodyHtml = false;//是否是HTML郵件????
msg.Priority = MailPriority.High;//郵件優先級????
SmtpClient client = new SmtpClient();????
client.Credentials = new System.Net.NetworkCredential("
boys90com@gmail.com
", "password");????
//上述寫你的GMail郵箱和密碼????
client.Port = 587;//Gmail使用的端口????
client.Host = "smtp.gmail.com";????
client.EnableSsl = true;//經過ssl
加密
????
object userState = msg;????
try????
{????
client.SendAsync(msg, userState);????
//簡單一點兒可以client.Send(msg);????
MessageBox.Show("發送成功");????
}????
catch (System.Net.Mail.SmtpException ex)????
{????
MessageBox.Show(ex.Message, "發送郵件出錯");????
}????
}??
?
通過Gmail來發送郵件,成功率極高,幾乎都可以發到,推薦使用,以上的幾種方法,我想已經夠我們做開發的用了。至于我做的Demo我整理好了就分享給大家。
我的獨立博客90男孩分享網 歡迎大家光臨,我們一起努力學習更多的知識,分享網快樂分享,快樂生活!!
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
