[食譜好菜] 微軟欽點的郵件發送套件 - MailKit

微軟有一個 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);
}

搞定,郵件成功送達。

參考資料

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學