需要用到的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. [原创]-bash: iostat: command not found解决办法

    [root@testhost ~]# iostat-bash: iostat: command not found IOSTAT 命令不可用,首先确认sysstat包是否安装,sysstat包中包括i ...

  2. Python 下的unittest测试框架

    unittest测试框架,直接上图吧: data:数据:主要格式为CSV:读取方式:csv.reade: public:封装的模块:通用的模块单独封装,所需参数设置为变量: testcase:测试用例 ...

  3. One of the best logo fonts "Klavika"

    Download link: http://fontsgeek.com/search?q=Klavika

  4. [Android Tips] 21. Regex Named Groups in Android

    Android SDK 并没有包含 Java 7 新增加的命名捕获组功能,需要使用第三方库 https://github.com/tony19/named-regexp import com.goog ...

  5. JavaScript基本操作

    一.如何编写? 1.JavaScript代码存在形式 <!-- 方式一 --> <script type="text/javascript" src=" ...

  6. 详解JS跨域问题

    什么是跨域? 概念:只要协议.域名.端口有任何一个不同,都被当作是不同的域.             JavaScript   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  7. python执行线程方法

    转自: http://www.jb51.net/article/71908.htm 由于python线程没有提供abort方法,所以我们需要自己想办法解决此问题,面对这一问题,小编帮大家解决phtho ...

  8. 转载 wpf使用经验

    转载自 胡庆访[ http://zgynhqf.cnblogs.com/ ] WPF 是一个界面层框架技术,要对 WPF 技术达到熟练运用的程度,需要同时拥有开发和设计两方面的知识.而我作为一名开发人 ...

  9. tomcat7 配置

    引用:http://blog.csdn.net/mengxiangbaidu/article/details/7020484 1.安装JDK, 2.安装, apt-get install  tomca ...

  10. handlebars.js 用 <br>替换掉 内容的换行符

    handlebars.js 用 <br>替换掉 内容的换行符 JS: Handlebars.registerHelper('breaklines', function(text) { te ...