一行代码,发送邮件
朋友让我给他媳妇儿肚子里的孩子想个名字
走的越来越快了,有天看到一个论点关于说地域会影响人的一辈子。其实想想的确有这个理儿,这使我想起来每天早上挤地铁的时候,其中有一个A站的人总是特别彪悍的往里挤,但B站的人就是永远不会去挤。这并不能说住在A站的人生来彪悍,只是他们那里住的人多,不去与别人争抢你就会上班迟到,相应或许就会扣工资,遭老板白眼!就是这样。
说回正题。让你一行代码实现发送邮件功能
由于几乎在每个项目开发中都离不开发送邮件功能,所以,我们反感反复造轮子,就随手基于Net.Mail封装的发送邮件代码。这段代码写了很久了,今天拿出来完善了一下、改了一个bug、加了注释、写了文档,一直在GitHub上面,重新发布到了NuGet上。这段代码可以用于在.Net项目中发送邮件,只需一行代码,真的是一行。支持多附件、多接收人、多抄送人。
注:欢迎大家使用及提Bug.
GitHub地址:https://github.com/mafly/Mail
其实也没什么特性
- 支持自定义邮件发出邮箱、发出方名字等。
- 支持SSL加密发送。
- 多个接收人、抄送人。
- 支持添加附件、多个附件。
- 目前大部分主流邮箱全支持。
傻瓜式安装
via NuGet:
1.打开程序包管理器控制台,执行命令:
Install-Package Mafly.Mail
或:
2.在Project右键,选择“管理NuGet程序包”,在右上角搜索框搜索“Mafly.Mail”。点击安装
via 源代码:
引用如下两个 .dll 文件
Newtonsoft.Json.dll
Mafly.Mail.dll
然后在项目目录下建立一个名字为 Config 文件夹,放入 MailSetting.config 文件,根据自己的邮箱服务器进行配置
注:以上两种方式完成后,都要把
MailSetting.config
的复制到输出目录
设置为始终复制
,或者把生成操作
设置为嵌入的资源
。
这一步不能少!不能少!!不能少!!!
不用看就会的用法
var mailService = new Mafly.Mail.Mail();
//参数:接收者邮箱、内容
mailService.Send("mafly@obo2o.cn", "测试邮件发送!");
//参数:接收者邮箱、接收者名字、内容
mailService.Send("mafly@obo2o.cn", "mafly", "测试邮件发送!");
//参数:接收者邮箱、接收者名字、邮件主题、内容
mailService.Send("mafly@obo2o.cn", "mafly", "邮件发送", "测试邮件发送!");
//使用MailInfo对象模式 参数:接收者邮箱、接收者名字、邮件主题、内容
mailService.Send(new MailInfo
{
Receiver = "mafly@obo2o.cn",
ReceiverName = "mafly",
Subject = "邮件发送",
Body = "测试邮件发送!"
});
//使用MailInfo对象模式 参数:接收者邮箱、接收者名字、邮件主题、内容、附件路径
mailService.Send(
new MailInfo
{
Receiver = "mafly@obo2o.cn",
ReceiverName = "mafly",
Subject = "带附件邮件发送",
Body = "测试带附件邮件发送!"
}, "../../Program.cs");
//使用MailInfo对象模式 参数:接收者邮箱、接收者名字、邮件主题、内容、多附件路径
mailService.Send(
new MailInfo
{
Receiver = "mafly@obo2o.cn",
ReceiverName = "mafly",
Subject = "带附件邮件发送",
Body = "测试带附件邮件发送!"
}, new Attachment("../../Program.cs"), new Attachment("../../App.config"));
想了解 Attachment
对象和 MailMessage
对象的。具体请点击官方文档:Attachment Class、MailMessage Class
最后的 Q&A
你封装的这一个其实并没有什么卵用,很简单阿,有这个必要吗?
是的,你说的对。
为什么不使用现成的那些、在线服务呢?如:SendCloud
你管。
真的是一行代码么?我看到好多行阿。
现在这个社会,没有噱头谁会看呢,您说是吧?
我能再问最后一个问题吗?
不能。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?