一、開發HY.Mail的初衷
Nuget或者github上有很多成熟且優秀的郵件庫可以使用, 但是目前找到的使用都不夠簡潔或者不適合我的使用場景
我的場景是開發應用場景(例如系統通知、運維通知),而非業務場景(給客戶發送郵件,HY.Mail也適用於此場景)。
需要能夠靈活簡潔的調用,需要預設一些郵件信息。
例如系統運維:需要做系統日志的郵件通知,一般收件人、接收人、抄送人都是預選設置好的。那么我們就需要預先設置N種MailSender,然后根據需求直接調用對應的MailSender發送郵件正文即可,而不必調用前設置發件人密碼 收件人。
二、HY.Mail使用
HY.Mail是進一步封裝了System.Net.Mail,輕量,簡潔,線程安全,進行了多線程處理的優化。
定義自己的Sender(類庫已經預設了QQMailSender):
public class MyMailSender : MailSender { private const string HOST = "smtp.XX.com"; private const int PORT = 25; public MyMailSender(string mailAddress, string password,string to="",string cc="",string title="") : base(HOST, PORT, mailAddress, password,to,cc) { }
}
用法:
var Sender = new MyMailSender("XXXXXXXXXX@xx.com", "XXXXXXXXXXXXXXXX"); Sender.Send("XXXXXXXXX@xx.com", "測試郵件", "郵件正文");
通過定義Sender可以靈活定義不同類型的郵箱:比如QQ、163、阿里郵箱。通過sender也可以預設默認收件人,如下:
public static class MyMailFactory { public static string test = string.Empty; public static myMailSender ToXXMailSender = new MyMailSender("XX@qq.com", "pwd","to@qq.com"); public static myMailSender ToYYMailSender = new MyMailSender("YY@qq.com", "pwd","to@qq.com"); } MyMailFactory.ToXXMailSender.Send("title","content")
這樣一來,可以在不同場景可以非常靈活簡潔的調用。
Nuget安裝:Install-Package HY.Mail
GitHub地址:https://github.com/HYDevTools/HYMail-CSharp