微軟有一個 System.Net.Mail.SmtpClient 類別,被建議說不要在新開發的應用程式中使用,並且給了非常明確的指示「請改用 MailKit
」,MailKit 是建構在 MimeKit 上面的一個跨平台郵件發送套件,既然微軟爸爸都這麼說了,我們直接上手。
建立 MimeMessage
我們直接用 MimeMessage 來建立一封郵件,之前就有用過 MimeKit,實在是方便。
var message = new MimeMessage();
// 寄件人
message.From.Add(new MailboxAddress("寄件人名稱", "寄件人郵件地址"));
// 收件人
message.To.Add(new MailboxAddress("收件人名稱", "收件人郵件地址"));
// 郵件標題
message.Subject = "這是一封電子郵件";
// 用 BodyBuilder 建立郵件內容
var bodyBuilder = new BodyBuilder();
// HTML 內容
bodyBuilder.HtmlBody = "<p> 我是 HTML </p>";
// 附件
bodyBuilder.Attachments.Add("檔案路徑");
message.Body = bodyBuilder.ToMessageBody();
使用 SmtpClient 發送郵件
MimeMessage 直接用 SmtpClient
發送出去,這個 SmtpClient 是 MailKit 提供的,跟微軟不建議的 System.Net.Mail.SmtpClient 不是同一個。
using (var smtpClient = new SmtpClient())
{
smtpClient.Connect("郵件伺服器", 587, false);
smtpClient.Authenticate("帳號", "密碼");
smtpClient.Send(message);
smtpClient.Disconnect(true);
}
搞定,郵件成功送達。