C#实现发送邮件的三种方法
這篇文章主要介紹了C#實現發送郵件的三種方法,實例講述了Localhost,SMTP與SSL-SMTP三種實現方法,對于C#項目開發有不錯的借鑒價值,需要的朋友可以參考下
本文實例講述了C#實現發送郵件的三種方法。分享給大家供大家參考。具體方法分析如下:
一、問題:
最近公司由于一個R&I項目的需要,用戶要求在購買產品或出貨等一些環節,需要發送郵件提醒或者說每周一讓系統自動采集數據發送一封E-mail,因此我也就找來相關資料,寫了一個Demo分享給大家,大家共同學習學習。
二、實現代碼:
通過.Net FrameWork 2.0下提供的“System.Net.Mail”可以輕松的實現,本文列舉了3種途徑來發送:
1.通過Localhost;
2.通過普通SMTP;
3.通過SSL的SMTP;
下面一個一個來說:
復制代碼 代碼如下:
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#代碼如下
復制代碼 代碼如下:
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
復制代碼 代碼如下:
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, "發送郵件出錯"); ? ?
} ? ?
}
總結
以上是生活随笔為你收集整理的C#实现发送邮件的三种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RIFF文件规范
- 下一篇: mp4文件格式解析(一)