开源.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.
随机推荐
- P5719 水题
https://www.luogu.com.cn/problem/P5719 唠唠:别看这题很水,且只要求保留小数点后一位,倘若用float而不是double的话就无法AC,洛谷评测则只有40分.所以 ...
- freeswitch媒体协商的三种配置方案
概述 在企业级VOIP通信中,语音质量是重要的关注点,而语音质量的好坏和媒体编解码有重要的关系. freeswitch作为一款免费开源的软交换平台,支持多种不同的编解码格式,具体详情本文不多描述. 而 ...
- 定期发送邮件功能-outlook与腾讯邮箱
一.背景:定期发送邮件功能挺好用的,可以帮忙我们在特殊的时间点发送邮件,以及实现无人推送的功能 二.outlook的实现1.首先编辑好邮件保存至草稿 2.选项-延迟传递,设置不早于传递的时间,点击发送 ...
- java进阶(7)--Object类-toString()/equals()/finalize()/hashCode()
一.object类介绍 object类这个老祖宗中的方法,所有子类通用,直接或间接继承. 学习常用方法即可 列表 prtected object clone() //对象克隆 ...
- 05_删除链表的倒数第N个节点
删除链表的倒数第N个节点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 示例 1: 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2: ...
- Kubernetes 内存资源限制实战
本文转载自米开朗基扬的博客 1. Kubernetes 内存资源限制实战 Kubernetes 对内存资源的限制实际上是通过 cgroup 来控制的,cgroup 是容器的一组用来控制内核如何运行进程 ...
- 在Python中使用Process创建子进程遇到的问题
假如使用Process创建子进程,那么在最后的函数调用时需要加上if __name__ == "__main__":语句,否则会报错. 未使用该语句 代码示例 from multi ...
- Https 原理与工作流程及证书链校验
本文为博主原创,未经允许不得转载: 目录 HTTP传输三大风险 安全通信原则 HTTPS定义 TLS/SSL 协议及加密算法 HTTPS工作流程 HTTPS协议和HTTP协议的区别 CA机构 证书链校 ...
- Flutter 3 发布了(文末推荐一个免费的在线Flutter学习教程)
翻译自 Tim Sneath 2022年5月12日的文章 <Introducing Flutter 3> 作者 : Tim Sneath 翻译 : 沙漠尽头的狼(谷歌翻译加持) 链接 : ...
- 在TypeScript项目中搭配Axios封装后端接口调用
前言 本来是想发 next.js 开发笔记的,结果发现里面涉及了太多东西,还是拆分出来发吧~ 本文记录一下在 TypeScript 项目里封装 axios 的过程,之前在开发 StarBlog-Adm ...