## 一:背景 ### 1. 講故事 上周有位朋友在 github 上向我求助,說線程都被卡住了,讓我幫忙看下,截圖如下: 
發送普通郵件(簡化版)
發送網頁郵件(完整版)
發送網頁郵件(簡化版)
1. 獲取郵件發送對象
public static MailTool Mail(string host, int port, string account, string password, bool enableSsl = false)
參數說明
host:SMTP發送郵件主機地址。
port:SMTP發送郵件服務埠。
account:發送郵件的郵箱賬戶(此賬戶並非是發件人賬戶)
password:發送郵件的郵箱賬戶密碼
enableSsl:指定是否SmtpClient使用安全套接字層(SSL)加密的連接
MailTool mail = Xmtool.Mail("smtp.126.com", 25, "test", "[email protected]");
// TODO
2. 發送普通郵件(完整版)
public void Send(string subject, string body, string bodyEncoding, string from, string fromName, string to, string replyTo, string cc, string bcc, params string[] attachments)
參數說明
subject:郵件標題。
body:郵件內容。
bodyEncoding:郵件內容編碼格式,通常為utf-8。
from:收件人看到的發件人郵箱地址。
fromName:收件人看到的發件人名稱。
to:收件人郵箱地址。
replyTo:收件人回覆郵件時的郵件地址。
cc:抄送人郵箱地址,多個用逗號分隔。
bcc:秘密抄送人郵箱地址,多個用逗號分隔。
attachments:附件地址,允許多個。
MailTool mail = Xmtool.Mail("smtp.126.com", 25, "test", "[email protected]");
mail.Send("測試郵件", "您好,這是一封測試郵件。", "utf-8", "[email protected]",
"softwaiter", "[email protected]", "[email protected]",
"[email protected],[email protected]", "", "附件.xlsx");
3. 發送普通郵件(簡化版)
public void Send(string subject, string body, string from, string to, params string[] attachments)
參數說明
subject:郵件標題。
body:郵件內容。
from:收件人看到的發件人郵箱地址。
to:收件人郵箱地址。
attachments:附件地址,允許多個。
MailTool mail = Xmtool.Mail("smtp.126.com", 25, "test", "[email protected]");
mail.Send("測試郵件", "您好,這是一封測試郵件。", "[email protected]", "[email protected]", "附件.xlsx");
4. 發送網頁郵件(完整版)
public void SendHtml(string subject, string body, string bodyEncoding, string from, string fromName, string to, string replyTo, string cc, string bcc, params string[] attachments)
參數說明
subject:郵件標題。
body:郵件內容(應該是網頁源碼)
bodyEncoding:郵件內容編碼格式,通常為utf-8。
from:收件人看到的發件人郵箱地址。
fromName:收件人看到的發件人名稱。
to:收件人郵箱地址。
replyTo:收件人回覆郵件時的郵件地址。
cc:抄送人郵箱地址,多個用逗號分隔。
bcc:秘密抄送人郵箱地址,多個用逗號分隔。
attachments:附件地址,允許多個。
MailTool mail = Xmtool.Mail("smtp.126.com", 25, "test", "[email protected]");
mail.Send("測試郵件", "<html><body>hello world.</body></html>", "utf-8", "[email protected]",
"softwaiter", "[email protected]", "[email protected]",
"[email protected],[email protected]", "", "附件.xlsx");
5. 發送網頁郵件(簡化版)
public void SendHtml(string subject, string body, string from, string to, params string[] attachments)
參數說明
subject:郵件標題。
body:郵件內容(應該是網頁源碼)
from:收件人看到的發件人郵箱地址。
to:收件人郵箱地址。
attachments:附件地址,允許多個。
MailTool mail = Xmtool.Mail("smtp.126.com", 25, "test", "[email protected]");
mail.Send("測試郵件", "<html><body>hello world.</body></html>", "[email protected]", "[email protected]", "附件.xlsx");
*註*:發送普通郵件和發送網頁郵件都提供了對應的非同步方法SendAsync、SendHtmlAsync,參數和同步方法相同。
有了以上方法,每次需要發送郵件,只需要兩步即可完成。
第一步:通過Mail方法獲取郵件發送對象。
第二步:使用獲取到的Mail郵件發送對象,調用Send、SendHtml、SendAsync、SendHtmlAsync其中的任意一個方法完成郵件發送。