一、开发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("[email protected]", "XXXXXXXXXXXXXXXX"); Sender.Send("[email protected]", "测试邮件", "邮件正文");
通过定义Sender可以灵活定义不同类型的邮箱:比如QQ、163、阿里邮箱。通过sender也可以预设默认收件人,如下:
public static class MyMailFactory { public static string test = string.Empty; public static myMailSender ToXXMailSender = new MyMailSender("[email protected]", "pwd","[email protected]"); public static myMailSender ToYYMailSender = new MyMailSender("[email protected]", "pwd","[email protected]"); } MyMailFactory.ToXXMailSender.Send("title","content")
这样一来,可以在不同场景可以非常灵活简洁的调用。
Nuget安装:Install-Package HY.Mail
GitHub地址:https://github.com/HYDevTools/HYMail-CSharp