ASP.NET Core中使用MialKit实现邮件发送
# 导包
首先我们需要导入 MailKit NuGet包,NuGet安装包命令在下方拓展介绍中。
# 引用命名空间
using MailKit.Net.Smtp;
using MimeKit;
# 邮件发送帮助类
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="Name">发件人名字</param>
/// <param name="receive">接收邮箱</param>
/// <param name="sender">发送邮箱</param>
/// <param name="password">邮箱密码</param>
/// <param name="host">邮箱主机</param>
/// <param name="port">邮箱端口</param>
/// <param name="subject">邮件主题</param>
/// <param name="body">邮件内容</param>
/// <returns></returns>
public async Task<bool> SendMailAsync(string Name, string receive, string sender, string password, string host, int port, string subject, string body)
{
try
{
# MimeMessage代表一封电子邮件的对象
var message = new MimeMessage();
# 添加发件人地址 Name 发件人名字 sender 发件人邮箱
message.From.Add(new MailboxAddress(Name, sender));
# 添加收件人地址
message.To.Add(new MailboxAddress("", receive));
# 设置邮件主题信息
message.Subject = subject;
# 设置邮件内容
var bodyBuilder = new BodyBuilder() { HtmlBody = body };
message.Body = bodyBuilder.ToMessageBody();
using (var client = new SmtpClient())
{
// For demo-purposes, accept all SSL certificates (in case the server supports STARTTLS)
client.ServerCertificateValidationCallback = (s, c, h, e) => true;
// Note: since we don't have an OAuth2 token, disable
// the XOAUTH2 authentication mechanism.
client.AuthenticationMechanisms.Remove("XOAUTH2");
client.CheckCertificateRevocation = false;
//client.SslProtocols = System.Security.Authentication.SslProtocols.Tls12;
client.Connect(host, port, MailKit.Security.SecureSocketOptions.Auto);
// Note: only needed if the SMTP server requires authentication
client.Authenticate(sender, password);
await client.SendAsync(message);
client.Disconnect(true);
return true;
}
}
catch (Exception ex)
{
}
return false;
}
借助这一个简单的邮件发送类我们就可以已经可以实现邮件发送功能了。
# 拓展(NuGet常用命令)
1、安装指定版本:install-package <程序包名> -version <版本号>
2、更新包:Update-Package <程序包名>
3、重新安装所有Nuget包(整个解决方案都会重新安装)
update-package -reinstall
4、重新安装指定项目所有Nuget包
update-package -project <项目名称> -reinstall
5、正常卸载:uninstall-package <程序包名>
6、强制卸载:Uninstall-Package <程序包名> -Force
# 参考博文
https://blog.csdn.net/sD7O95O/article/details/89334103
https://www.cnblogs.com/qulianqing/p/7413640.html
https://www.cnblogs.com/savorboard/p/aspnetcore-email.html
https://www.cnblogs.com/daizhipeng/p/10955773.html
ASP.NET Core中使用MialKit实现邮件发送的更多相关文章
- 如何在 ASP.NET Core 中发送邮件
前言 我们知道目前 .NET Core 还不支持 SMTP 协议,当我么在使用到发送邮件功能的时候,需要借助于一些第三方组件来达到目的,今天给大家介绍两款开源的邮件发送组件,它们分别是 MailKit ...
- ASP.NET Core中实现单体程序的事件发布/订阅
标题:ASP.NET Core中实现单体程序的事件发布/订阅 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/10468058.html 项目源代码: ...
- ASP.NET Core中防跨站点请求伪造
CSRF(Cross-site request forgery)利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的. 例子 在某个 ...
- ASP.NET Core:ASP.NET Core中使用NLog记录日志
一.前言 在所有的应用程序中,日志功能是不可或缺的模块,我们可以根据日志信息进行调试.查看产生的错误信息,在ASP.NET Core中我们可以使用log4net或者NLog日志组件来实现记录日志的功能 ...
- ASP.NET Core 中的那些认证中间件及一些重要知识点
前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...
- Asp.net Core中使用Session
前言 2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年. 元旦放假在家写了个Asp.net Core验证码登录, 做demo的过程中遇到两个小问题,第一是在Asp.net Cor ...
- 在ASP.NET Core中使用百度在线编辑器UEditor
在ASP.NET Core中使用百度在线编辑器UEditor 0x00 起因 最近需要一个在线编辑器,之前听人说过百度的UEditor不错,去官网下了一个.不过服务端只有ASP.NET版的,如果是为了 ...
- ASP.NET Core中的依赖注入(1):控制反转(IoC)
ASP.NET Core在启动以及后续针对每个请求的处理过程中的各个环节都需要相应的组件提供相应的服务,为了方便对这些组件进行定制,ASP.NET通过定义接口的方式对它们进行了"标准化&qu ...
- ASP.NET Core中的依赖注入(2):依赖注入(DI)
IoC主要体现了这样一种设计思想:通过将一组通用流程的控制从应用转移到框架之中以实现对流程的复用,同时采用"好莱坞原则"是应用程序以被动的方式实现对流程的定制.我们可以采用若干设计 ...
随机推荐
- 【原创】Airflow调用talend
核心原理 因为talend job build出来是一个可直接运行的程序,可以通过shell命名启动job进程,因此可以使用airflow的bashoperator调用生成好的talend job包里 ...
- Mongodb分片 学习小结
前一篇 https://www.cnblogs.com/frx9527/p/mongodb.html 学会搭建复制集Replication之后,就可以学习分片Sharding了. 教程建议看官方文档: ...
- 关于使用repo时repo init和repo sync失败的一个解决方案
由于我国的网络的原因,在访问谷歌等一些国外网络资源时经常会遇到被拦截的情况,导致repo等一些代码管理工具拉取代码网络受限受阻,下面提供一个可以参考的简单解决方案. 1.repo init时的遇到fa ...
- E09【餐厅】Can I have the bill,please?
核心句型: Can I have the bill ,please? 请给我账单,好吗? 场景对话: A:Excuse me. Can I have the bill ,please? 你好,请给我账 ...
- Spring(001)-Hello Spring
Spring系列第一篇,先通过Spring实现一个Hello Spring程序. 访问 https://start.spring.io/ 开始spring代码骨架的构建. 输入mvn坐标 加入web和 ...
- java web问题总结
1.java web上传附图页面空,无返回 原因:前端页面与后台端口不一致,无页面可返回 2.上传excel导入数据时,只能导入第一条,后面的数据无法导入,缓存设置过小.
- HDU1213:How Many Tables(并查集入门)
-----------刷点水题练习java------------- 题意:给定N点,M边的无向图,问有多少个连通块. 思路:可以搜索; 可以并查集.这里用并查集练习java的数组使用,ans=N, ...
- python27期day05:字典、字典嵌套、作业题。
1.字典是python中的数据类型之一.唯一一种大括号{}键值对的数据. 2.存储大量的数据.将数据和数据之间进行关联. 3.通过键可以准确的找到值 4.哈希:可变数据类型就不可哈希 不可变数据类 ...
- idea 配置 scala
在setting 中,通过plugin 安装 Scala 然后重启idea 重启后,建一个scala文件,根据上面提示安装scala
- win10经常无法复制粘贴
两种方法尝试一下: 1. 在c:\windows\system32 目录下新建文件夹,命名为clip 2. 因为有道词典会监控并占用你的剪贴板,请尝试关闭有道词典的[取词]和[划词]功能,如果还不行就 ...