需要用到的Nuget包

"MailKit": "1.8.1",

方法

  /// <summary>
/// 发送邮件(支持Html发送,支持添加一个附件)
/// </summary>
/// <param name="subject">邮件标题</param>
/// <param name="email">收件人地址</param>
/// <param name="content">邮件内容</param>
/// <param name="filepath">文件的相对路径</param>
public static void SendEmail(string subject, string email,string content,string filepath=null)
{
var message = new MimeMessage();
//发信人
message.From.Add(new MailboxAddress("发信人姓名", "发信人邮箱"));
//收信人
message.To.Add(new MailboxAddress("", email));
//标题
message.Subject = subject;
//产生一个支持Html的TextPart
var body = new TextPart(TextFormat.Html)
{
Text = content
};
//先产生一个
var multipart = new Multipart("mixed");
//添加正文内容
multipart.Add(body);
if (!string.IsNullOrWhiteSpace(filepath))
{
//生产一个绝对路径
//filepath = "Upload//NewsPhoto//readme.txt";
var absolutePath = Path.Combine(_hostingEnv.WebRootPath, string.Format(filepath));
//附件
var attachment = new MimePart()
{
//读取文件(只能用绝对路径)
ContentObject = new ContentObject(File.OpenRead(absolutePath), ContentEncoding.Default),
ContentDisposition = new ContentDisposition(ContentDisposition.Attachment),
ContentTransferEncoding = ContentEncoding.Base64,
//文件名字
FileName = Path.GetFileName(absolutePath)
};
//添加附件
multipart.Add(attachment);
}
//正文内容
message.Body = multipart;
using (var client = new SmtpClient())
{
//连接到Smtp服务器
client.Connect("smtp服务器地址", 端口, false);
//登陆
client.Authenticate("账号", "密码");
//发送
client.Send(message);
//断开
client.Disconnect(true);
}
}

以上的这个方法可以发Html的文本并附带附件

7.dotnet core 如何发邮件的更多相关文章

  1. django自带的django.core.mail模块实现发邮件的功能

    django自带了一个模块,可以实现发邮件的功能.如果项目开发遇到需要发邮件进行验证的时候可以用到. 1.先要准备发件人 发邮件需要使用SMTP.SMTP是什么呢? 简单邮件传输协议(Simple M ...

  2. net core发邮件——MimeKit

    var message = new MimeMessage(); message.From.Add(new MailboxAddress("谁发的", "发送方的邮件地址 ...

  3. win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序

    本文是一个非常简单的博客,让大家知道如何使用 asp dot net core 做后台,使用 UWP 或 WPF 等做前台. 本文因为没有什么业务,也不想做管理系统,所以看到起来是很简单. Visua ...

  4. dotnet core多平台开发体验

    前言 随着net core rc2的发布,园子里面关于net core的入门文章也也多了起来,但是大多数都是在一个平台上面来写几个简单的例子,或者是在解释代码本身,并没有体现说在一个平台上面创建一个项 ...

  5. CYQ.Data 正式支持 DotNET Core 版本发布

    闲话几句: 自从上周开始,IOS人员逝去,就开始接手IOS的代码了. 并开始整理IOS的代码(包括当时一开始设计的开发框架). 在未来不远的日子里,设想是有一个系列详细的介绍I恋App和IT连App及 ...

  6. Django实现发邮件

    1 首先去自己的邮箱申请,在设置里面找,申请开通smtp服务,我用的是163邮箱 2 在项目下settings.py中添加设置: # 配置邮箱发邮件的相关功能 #这一项是固定的 EMAIL_BACKE ...

  7. [dotnet core]使用Peach简化Socket网络通讯协议开发

    Peach是基于DotNetty的Socket网络通讯帮助类库,可以帮助开发者简化使用DotNetty,关于DotNetty可参考我之前的这篇文章. Peach内置实现了一个基于文本协议的Comman ...

  8. dotnet core多平台开发体验(mac os x 、windows、linux)

    前言 随着net core rc2的发布,园子里面关于net core的入门文章也也多了起来,但是大多数都是在一个平台上面来写几个简单的例子,或者是在解释代码本身,并没有体现说在一个平台上面创建一个项 ...

  9. 2017-03-05 CentOS中结合Nginx部署dotnet core Web应用程序

    Visual Studio Live 倒计时2天,当然这是美国倒计时两天,中国应该是在3月8日的凌晨,正值"3.8妇女节".提前祝广大的女性同志节日快乐,当然还有奋斗在一线的程序媛 ...

随机推荐

  1. 打造Linux三流娱乐环境,二流办公环境,一流Java开发环境

    写这篇文章的目的首先是为让自己以后再装linux环境时候,不用再通宵google+百度,做个备忘录,其次,给新入Linux环境的同学分享一点个人经验,再高尚点的动机也算是想做为开源技术的传播布道者.我 ...

  2. 分布式缓存Memcached---开篇的话

    大数据.高并发这是最近一段时间内被IT行业提的最为火热的概念,看过<大数据时代>的同学应该不会陌生大数据的概念,尤其是对于互联网行业来说,大数据是每天都要接触的问题,简单通俗地说,每天得大 ...

  3. android switch语句报错:case expressions must be constant expressions

    今天无意中碰见了   case expressions must be constant expressions 的问题 写了一个 switch(item.getItemId()) { case R. ...

  4. 【VirtualBox】 Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host

    win10 VirtualBox_5.0.24.8355_Win 安装后导入.ova 文件后 虚拟机不能正常启动 ===> 解决: “打开网络和共享中心” “更多适配器设置” 选择 对应的网络适 ...

  5. cmd光标移动

    ESC:清除当前命令行.F1: 单字符输出上次输入的命令 相当于方向键上的 → 的作用.F2: 可复制字符数量 , 输入上次命令中含有的字符,系统自动删除此字符后的内容.F3: 重新输入前一次输入的命 ...

  6. Buge's Fibonacci Number Problem

    Buge's Fibonacci Number Problem Description snowingsea is having Buge’s discrete mathematics lesson, ...

  7. Python中的传值和引用

    我写这个主要是给自己看,内容也就是便于自己理解,可能会不正确,但目前来看代码测试的结果是对的. python中一切皆对象. 当我们赋值时: a = 1 其实是先创建了一个整数常量1(也是一个对象,且已 ...

  8. 让Android程序获得系统的权限,实现关机重启,静默安装等功能

    引用:http://www.cnblogs.com/welenwho/archive/2012/05/10/2494984.html android想要获得系统权限有几种途径,一种就是你的程序固化的系 ...

  9. [原创] 如何用Eclispe调试java -jar xxx.jar 方式执行的jar包

    有时候,我们经常会需要调试 java -jar xxx.jar方式运行的代码,而不是必须在Eclipse中用Debug或者Run的方式运行.比如我们拿到的SourceCode不完整.Java提供了一种 ...

  10. JSON对象长度和遍历方法

    摘自博客 (http://caibaojian.com/json-length.html) 原文链接:http://caibaojian.com/json-length.html JSON数组有长度j ...