开源.NetCore通用工具库Xmtool使用连载 - 发送邮件篇
【Github源码】
《上一篇》 介绍了Xmtool工具库中的随机值类库,今天我们继续为大家介绍其中的邮件发送类库。
发送邮件是系统开发中经常需要的功能,广泛应用于消息通知、异常告警、内容分发等场景;.netcore框架内置提供了发送邮件的方法,但使用时需要创建多个邮件对象实例,设置一堆复杂的属性,整个过程代码冗长,体验及其不友好;因此,本人将整个邮件发送过程进行了二次封装,最终,用户只需要调用两个方法,即可实现发送邮件的目的。
本类库总共提供了5个方法,分为获取邮件发送对象、发送普通邮件、发送网页邮件3类。
获取邮件发送对象
发送普通邮件(完整版)
发送普通邮件(简化版)
发送网页邮件(完整版)
发送网页邮件(简化版)
1. 获取邮件发送对象
public static MailTool Mail(string host, int port, string account, string password, bool enableSsl = false)
参数说明
host:SMTP发送邮件主机地址。
port:SMTP发送邮件服务端口。
account:发送邮件的邮箱账户(此账户并非是发件人账户)
password:发送邮件的邮箱账户密码
enableSsl:指定是否SmtpClient使用安全套接字层(SSL)加密的连接
MailTool mail = Xmtool.Mail("smtp.126.com", 25, "test", "test@123");
// TODO
2. 发送普通邮件(完整版)
public void Send(string subject, string body, string bodyEncoding, string from, string fromName, string to, string replyTo, string cc, string bcc, params string[] attachments)
参数说明
subject:邮件标题。
body:邮件内容。
bodyEncoding:邮件内容编码格式,通常为utf-8。
from:收件人看到的发件人邮箱地址。
fromName:收件人看到的发件人名称。
to:收件人邮箱地址。
replyTo:收件人回复邮件时的邮件地址。
cc:抄送人邮箱地址,多个用逗号分隔。
bcc:秘密抄送人邮箱地址,多个用逗号分隔。
attachments:附件地址,允许多个。
MailTool mail = Xmtool.Mail("smtp.126.com", 25, "test", "test@123");
mail.Send("测试邮件", "您好,这是一封测试邮件。", "utf-8", "softwaiter@126.com",
"softwaiter", "shoujianren@126.com", "softwaiter@126.com",
"lingdao@126.com,lingdao2@126.com", "", "附件.xlsx");
3. 发送普通邮件(简化版)
public void Send(string subject, string body, string from, string to, params string[] attachments)
参数说明
subject:邮件标题。
body:邮件内容。
from:收件人看到的发件人邮箱地址。
to:收件人邮箱地址。
attachments:附件地址,允许多个。
MailTool mail = Xmtool.Mail("smtp.126.com", 25, "test", "test@123");
mail.Send("测试邮件", "您好,这是一封测试邮件。", "softwaiter@126.com", "shoujianren@126.com", "附件.xlsx");
4. 发送网页邮件(完整版)
public void SendHtml(string subject, string body, string bodyEncoding, string from, string fromName, string to, string replyTo, string cc, string bcc, params string[] attachments)
参数说明
subject:邮件标题。
body:邮件内容(应该是网页源码)
bodyEncoding:邮件内容编码格式,通常为utf-8。
from:收件人看到的发件人邮箱地址。
fromName:收件人看到的发件人名称。
to:收件人邮箱地址。
replyTo:收件人回复邮件时的邮件地址。
cc:抄送人邮箱地址,多个用逗号分隔。
bcc:秘密抄送人邮箱地址,多个用逗号分隔。
attachments:附件地址,允许多个。
MailTool mail = Xmtool.Mail("smtp.126.com", 25, "test", "test@123");
mail.Send("测试邮件", "<html><body>hello world.</body></html>", "utf-8", "softwaiter@126.com",
"softwaiter", "shoujianren@126.com", "softwaiter@126.com",
"lingdao@126.com,lingdao2@126.com", "", "附件.xlsx");
5. 发送网页邮件(简化版)
public void SendHtml(string subject, string body, string from, string to, params string[] attachments)
参数说明
subject:邮件标题。
body:邮件内容(应该是网页源码)
from:收件人看到的发件人邮箱地址。
to:收件人邮箱地址。
attachments:附件地址,允许多个。
MailTool mail = Xmtool.Mail("smtp.126.com", 25, "test", "test@123");
mail.Send("测试邮件", "<html><body>hello world.</body></html>", "softwaiter@126.com", "shoujianren@126.com", "附件.xlsx");
*注*:发送普通邮件和发送网页邮件都提供了对应的异步方法SendAsync、SendHtmlAsync,参数和同步方法相同。
有了以上方法,每次需要发送邮件,只需要两步即可完成。
第一步:通过Mail方法获取邮件发送对象。
第二步:使用获取到的Mail邮件发送对象,调用Send、SendHtml、SendAsync、SendHtmlAsync其中的任意一个方法完成邮件发送。
【Github源码】
开源.NetCore通用工具库Xmtool使用连载 - 发送邮件篇的更多相关文章
- 开源.NetCore通用工具库Xmtool使用连载 - 加密解密篇
[Github源码] <上一篇>详细介绍了Xmtool工具库中的正则表达式类库,今天我们继续为大家介绍其中的加密解密类库. 在开发过程中我们经常会遇到需要对数据进行加密和解密的需求,例如密 ...
- 最好的.NET开源免费ZIP库DotNetZip(.NET组件介绍之三)
在项目开发中,除了对数据的展示更多的就是对文件的相关操作,例如文件的创建和删除,以及文件的压缩和解压.文件压缩的好处有很多,主要就是在文件传输的方面,文件压缩的好处就不需要赘述,因为无论是开发者,还是 ...
- Win10 UWP开发系列——开源控件库:UWPCommunityToolkit
在开发应用的过程中,不可避免的会使用第三方类库.之前用过一个WinRTXamlToolkit.UWP,现在微软官方发布了一个新的开源控件库—— UWPCommunityToolkit 项目代码托管在G ...
- Cowboy 开源 WebSocket 网络库
Cowboy.WebSockets 是一个托管在 GitHub 上的基于 .NET/C# 实现的开源 WebSocket 网络库,其完整的实现了 RFC 6455 (The WebSocket Pro ...
- java开源时间/日期库Joda-Time
任何企业应用程序都需要处理时间问题.应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径.使用 JDK 完成这项任务将非常痛苦和繁琐.现在来看看 Joda Time,一 ...
- fastjson是阿里巴巴的开源JSON解析库
fastjson的API十分简洁. String text = JSON.toJSONString(obj); //序列化 VO vo = JSON.parseObject("{...}&q ...
- 人生维艰,何不利用开源.NET函数库让工作更轻松
今天推荐的文章会谈到一些让你工作更轻松的开源.NET函数库. 即使业界有时候认为.NET开源社区不太健康,很多开发团队都更多依赖于微软提供的东西来开发.不过最近在.NET世界中还是诞生了一些优秀和有意 ...
- ios开发与安卓开源项目及库
自己总结的iOS.mac开源项目及库 https://github.com/Tim9Liu9/TimLiu-iOS 自己总结的Android开源项目及库 https://github.com/Tim9 ...
- 1. Android 系统上一款开源的图表库
1. MPAndroidChart MPAndroidChart 是 Android 系统上一款开源的图表库.目前提供线图和饼图,支持选择.缩放和拖放. 一个可以拖动缩放的图表库,包含曲线图.直方图 ...
- 使用C++的开源序列化(Serialization)库cereal
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:使用C++的开源序列化(Serialization)库cereal.
随机推荐
- C#设计模式12——代理模式的写法
1. 什么是代理模式? 代理模式是一种结构型设计模式,它允许通过代理对象来控制对真实对象的访问,以提供额外的功能或控制访问权限. 2. 代理模式的作用是什么? 代理模式可以为对象提供保护代理.远程代理 ...
- Vue第四篇 Vue路由系统
01-路由注册 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- springBoot 使用 @NotEmpty,@NotBlank,@NotNull 及@Valid注解校验请求参数
本文为博主原创,转载请注明出处: @NotEmpty,@NotBlank,@NotNull 这些注解所在的jar包路径在 javax.validation.constraints 的包下面,这个包下面 ...
- 【Python】.format用法
格式化打印 print("***{}".format(args)) 格式化转换 module = "skull" print "MODULE_{} ...
- VUE字符串模板@click失效
因为字符串模板不能被vue所渲染,所以这种方式行不通. 可采用组件的方式 父组件 <template> <div id="app"> <My v-fo ...
- [转帖]Nginx 性能优化
目录 1.调整 worker 进程数 2.调整 worker 连接数 3.调整 work 进程最大打开文件数 4.开启高效文件传输模式 5.限制文件上传大小 6.开启 gzip 压缩 7.本地缓存静态 ...
- [转帖]centos7离线安装postgresql13
https://www.cnblogs.com/summer-88/p/15341918.html 在一台可以联网的centos上安装postgresql源 yum install -y https: ...
- [转帖]KingbaseES 事务总结
目录 1. 什么是事务? 2. 事务的属性-ACID 3. 数据库事务的操作方式 3.1. SET TRANSACTION 3.2. BEGIN 3.3. COMMIT 3.4. ROLLBACK 3 ...
- 如何查看服务器的Raid缓存等配置的情况
摘要 最近总遇到同一批机器的IO不一样的情况. 感觉可能跟硬件设备和Raid卡的设置不一样有关系. 所以今天学习研究了下storcli的命令. 希望能够进行一些数据的收集. Storcli简介 sto ...
- Nginx 发布 Docker 运行日志的方法
背景 公司这边想进行容器化负载均衡部署. 脚本很简单, 已经实现了, 但是发现我这边没有ELK也没有LOKI 又不太像切入到容器内部进行 获取日志信息. 所以我这边想了一个别的招来动态刷新日志. 思路 ...