簡單易用的 .NET 郵件發送套件,支援 SMTP 協定發送郵件,包含附件功能。
目前版本:1.0.2
- .NET 6.0 或更高版本
- SMTP 郵件發送
- 支援多位收件者
- 支援副本 (CC) 收件者
- 支援附件檔案
- 支援 HTML 格式郵件內容
- 支援 SSL/TLS 加密連線
透過 NuGet 套件管理員安裝:
dotnet add package Ozakboy.Mail
在專案根目錄建立 appsettings.json 檔案並加入 SMTP 設定:
{
"SmtpMailConfig": {
"Port": 587,
"Host": "smtp.gmail.com",
"UserName": "your-email@gmail.com",
"Password": "your-app-password",
"Name": "寄件者顯示名稱"
}
}重要提醒:使用 Gmail 時請注意
- Port 請使用
587(TLS) - Password 需使用「應用程式密碼」而非 Gmail 帳號密碼
- 如何取得應用程式密碼:Google 帳戶安全性設定
{
"SmtpMailConfig": {
"Port": 25,
"Host": "你的SMTP HOST",
"UserName": "帳號",
"Password": "密碼",
"Name": "你的寄信名稱"
}
}builder.Services.AddScoped<IMail, Mail>();
using Microsoft.Extensions.Configuration; using Ozakboy.Mail; var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); var app = builder.Build(); IMail Mail = new Mail(app);
需要額外安裝的套件:
dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.Binder dotnet add package Microsoft.Extensions.Configuration.Json
發送郵件的主要方法。
ReceiveInfos(List<MailInfo>) - 收件人列表CCInfos(List<MailInfo>) - 副本收件人列表AttachmentsInfos(List<AttachmentsInfo>) - 附件列表MailSubject(string) - 郵件主旨MailBody(string) - 郵件內容IsBodyHtml(bool) - 內容是否為 HTML 格式,預設為 true
using Ozakboy.Mail; // 建立收件者 List<MailInfo> receivers = new List<MailInfo> { new MailInfo("receiver@example.com", "收件者名稱") }; // 發送純文字郵件 Mail.SendMail(receivers, null, null, "測試主旨", "測試內容", false);
using Ozakboy.Mail; using System.Net.Mime; // 收件者 List<MailInfo> receivers = new List<MailInfo> { new MailInfo("receiver1@example.com", "收件者1"), new MailInfo("receiver2@example.com") // 可以不指定名稱 }; // 副本收件者 List<MailInfo> ccReceivers = new List<MailInfo> { new MailInfo("cc@example.com", "副本收件者") }; // 附件 List<AttachmentsInfo> attachments = new List<AttachmentsInfo>(); FileStream fileStream = new FileStream("document.pdf", FileMode.Open); attachments.Add(new AttachmentsInfo { FileName = "文件.pdf", FileType = MediaTypeNames.Application.Pdf, FileStream = fileStream }); // 發送郵件 Mail.SendMail( receivers, ccReceivers, attachments, "重要通知", "<h1>這是 HTML 郵件</h1><p>內容...</p>", true );
本套件自動包含以下相依項目:
- Microsoft.Extensions.Configuration.Abstractions (6.0.0)
- Microsoft.Extensions.Configuration.Binder (6.0.0)
本專案採用 MIT 授權條款。
如有任何問題或建議,歡迎在 GitHub Issues 提出。
歡迎提交 Pull Request 來改善此專案!