這裡使用SMTP發郵件,什麼是SMTP呢?SMTP:“Simple Mail Transfer Protocol”,即簡易郵件傳輸通訊協定。它是一組用於從源地址到目的地址傳輸郵件的規範,通過它來控制郵件的中轉方式。
要發送郵件,先瞭解郵件有哪些內容構成:
郵件服務器地址
連接埠
寄件人
收件者
副本人
密件人
標題
本文
附件
知道這些內容後,我們就知道在設置郵件時需要設置哪些東西了。
如何發呢?
發送郵件需使System.Net.Mail命名空間
使用其中的SmtpClient、MailMessage和Attachment三個類。
1. MailMessage:表示可以使用 SmtpClient 類發送的電子郵件。(郵件的資訊)
2. Attachment:表示電子郵件的附件。
3. SmtpClient:允許應用程式使用簡易郵件傳輸通訊協定 (SMTP) 來寄送電子郵件。
註:郵件中的內容與MailMessage中屬性的對應如下:
郵件部分 |
屬性 |
寄件者 |
From |
收件者 |
To |
抄送 (CC) |
CC |
密件副本 (BCC) |
Bcc |
附件 |
Attachments |
主題 |
Subject |
郵件內文 |
Body |
下邊來看一下代碼:
/// <summary>
/// 發送郵件的基礎代碼(不需要設定寄件者賬戶及密碼)
/// </summary>
private static void SendMailBaseCode()
{
//實例化郵件資訊類
MailMessage msg = new MailMessage();
//寄件人
msg.From = new MailAddress(MailSender);
//收件者
msg.To.Add("XXX@xxx.com");
//標題
msg.Subject = "test";
//標題編碼
msg.SubjectEncoding = Encoding.UTF8;
//本文
msg.Body = "test body";
//本文編碼
msg.BodyEncoding = Encoding.UTF8;
//本文是否用Html形式
msg.IsBodyHtml = false;
//實例化附件類
//附件
Attachment amAnnex = new Attachment(@"D:\ckmsg.txt");
msg.Attachments.Add(amAnnex);
//實例化SMTPClinet類
SmtpClient scMailServer = new SmtpClient();
//郵件服務器地址
scMailServer.Host = "xxx.xxx.xxx.xxx";
//連接埠
scMailServer.Port = 25;
//發送郵件
scMailServer.Send(msg);
}
/// <summary>
/// 發送郵件的基礎代碼(需要賬號)
/// </summary>
private static void SendMailNeedBaseCode()
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress("XXX@163.com");
msg.To.Add("XXX@xxx.com");
msg.Subject = "test";
msg.SubjectEncoding = Encoding.UTF8;
Attachment amAnnex = new Attachment(@"D:\ckmsg.txt");
msg.Attachments.Add(amAnnex);
msg.Body = "test body";
msg.BodyEncoding = Encoding.UTF8;
msg.IsBodyHtml = true;
SmtpClient scMailServer = new SmtpClient();
scMailServer.DeliveryMethod = SmtpDeliveryMethod.Network;
scMailServer.Credentials = new NetworkCredential("XXX", "XXX");
scMailServer.Host = "smtp.163.com";
scMailServer.Port = 25;
scMailServer.Send(msg);
}