目錄
郵件發送
說明
本文主要說明如何用 C# 語言來寫一個小功能————SMTP 郵件發送。並且本文中用的是網易126郵件服務器爲例。
SMTP 協議
首先,發送郵件的前提是發送方需支持簡單郵件傳輸協議( Simple Mail Transfer Protocol ),默認端口爲25。
進入126網易郵箱,在上方的導航欄中可以看到“設置”一欄,點擊後選擇 POP3/SMTP/IMAP 進入設置頁面。點擊開啓 SMTP 服務並保存即可(目前新申請的郵箱需要綁定手機號纔可開啓此功能)。
郵件服務器
常用的郵件服務器如下,只列出了一部分,具體可以去網上查詢。
常用郵件服務器名 | POP3服務器地址 | SMTP服務器地址 |
---|---|---|
google.com | pop.gmail.com | smtp.gmail.com |
sina.com | pop3.sina.com.cn | smtp.sina.com.cn |
163.com | pop.163.com | smtp.163.com |
126.com | pop.126.com | smtp.126.com |
china.com | pop.china.com | smtp.china.com |
sohu.com | pop3.sohu.com | smtp.sohu.com |
yahoo.com | pop.mail.yahoo.com | smtp.mail.yahoo.com |
google.com | pop.gmail.com | smtp.gmail.com |
具體代碼
首先引用兩個命名空間
using System.Net;
using System.Net.Mail;
/// <summary>
/// 郵件發送
/// </summary>
/// <param name="toMail">收件人郵箱</param>
/// <param name="title">郵件標題</param>
/// <param name="body">郵件內容</param>
/// <param name="host">郵件服務器,例:"smtp.126.com"</param>
/// <param name="port">郵件服務器端口</param>
public void Send(string toMail, string title, string body, string host, int port)
{
MailAddress from = new MailAddress(發件人郵箱, 發件人名字);
// 設置收件人信箱,及顯示名字
MailAddress to = new MailAddress(toMail, "admin");
// 創建一個MailMessage對象
MailMessage oMail = new MailMessage(from, to);
oMail.Subject = title; // 郵件標題
oMail.Body = body; // 郵件內容
oMail.IsBodyHtml = true; // 指定郵件格式,支持HTML格式
oMail.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312"); // 郵件採用的編碼
oMail.Priority = MailPriority.High; // 設置郵件的優先級爲高
// 發送郵件服務器
SmtpClient client = new SmtpClient();
client.Host = host; // 指定郵件服務器
client.Port = port; // 端口
client.Credentials = new NetworkCredential(發件人郵箱, 郵箱SMTP授權密碼); // 指定服務器郵件,及郵箱SMTP授權密碼
// 發送
try
{
client.Send(oMail); // 發送郵件
}
catch (Exception e)
{
...
}
}