开源.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.
随机推荐
- netstat 命令查看端口状态详解
转载请注明出处: netstat 可以查看服务器当前端口列表及指定端口的连接状态等: -t : 指明显示TCP端口,t是TCP的首字母. -u : 指明显示UDP端口,u是UDP的首字母 -p : 显 ...
- [转帖]Redhat 8 磁盘调度策略变化:NOOP改为NONE
说明 在 redhat 4/5/6/7版本中的NOOP调度策略,从8开始修改为NONE,官方解释: none Implements a first-in first-out (FIFO) schedu ...
- [转帖]iometer - 性能压力测试工具
<存储工具系列文章>主要介绍存储相关的测试和调试工具,包括不限于dd.fio.vdbench.iozone.iometer.cosbench等性能负载工具,及strace等调试工具. 1 ...
- 【转帖】数据库篇-MySql架构介绍
https://zhuanlan.zhihu.com/p/147161770 公众号-坚持原创,码字不易.加微信 : touzinv 关注分享,手有余香~ 本篇咱们也来聊聊mysql物理和逻辑架构,还 ...
- [转帖]linux块I/O总体概括
直接先上重点,linux中IO栈的完全图如下: 系统中能够随机访问固定大小数据片的硬件设备称作块设备.固定大小的数据片称为块.常见的块设备就是硬盘了.不能随机访问的就是字符设备了,管理块设备比字符设备 ...
- [转帖]CoreDump设置方式
https://www.jianshu.com/p/f5c3134072d2 本文讲述利用coredump调试时,对coredump信息相关的设置方式. 设置core文件大小 列出所有资源的限制 #u ...
- [转帖]整理常用的 vim 命令
vim 是一款功能强大的文本编辑器,它是Linux下常用的编辑器之一,对于熟练掌握了 vim 的人来说,用它编辑文件,方便又快捷,能极大的提高工作效率 vim 功能强大,对应的命令也非常的多,对于初学 ...
- [转帖]【JVM】JVM源码分析之Metaspace解密
概述 metaspace,顾名思义,元数据空间,专门用来存元数据的,它是jdk8里特有的数据结构用来替代perm,这块空间很有自己的特点,前段时间公司这块的问题太多了,主要是因为升级了中间件所致,看到 ...
- PMC相关RAID卡信息查看方法
PMC相关RAID卡信息查看方法 摘要 昨天简单整理了LSI相关设备的信息 今天计划学习下PMC相关的RAID卡信息. 也就是偶昨天storcli 查看 controller为0 的情况. 感觉部分服 ...
- [转贴]loadrunner 场景设计-添加Unix、Linux Resources计数器
loadrunner 场景设计-添加Unix.Linux Resources计数器 https://www.cnblogs.com/shouke/p/10158239.html 场景设计-添加Un ...