AspNetCore 目前不支持SMTP协议(基于开源组件开发邮件发送,它们分别是MailKit 和 FluentEmail )
net所有的功能都要重新来一遍,集成众多类库,core任重道远,且发展且努力!!
我们都知道,很多的邮件发送都是基于这个SMTP协议,但现在的.net core对这方面还不太支持,所以我们选择这两个组件MailKit 和 FluentEmail
MailKit与fluentEmail
在 ASP.NET Core 中,可以使用 MailKit 来发送邮件,它支持跨平台,并且支持 IMAP, POP3, SMTP 等协议。
你可以使用下面的方式安装:
Install-Package MailKit
直接show代码吧!!
using MimeKit;
using System;
using System.IO; namespace SMTP协议
{
class Program
{
static void Main(string[] args)
{
TestSendMailDemo();
}
public static void TestSendMailDemo()
{
var message = new MimeKit.MimeMessage();
message.From.Add(new MimeKit.MailboxAddress("zara", "947099752@qq.com"));
message.To.Add(new MimeKit.MailboxAddress("zaranet", "zaranet@163.com"));
message.Subject = "This is a Test Mail";
var plain = new MimeKit.TextPart("plain")
{
Text = @"不好意思,我在测试程序,Sorry!"
};
var html = new MimeKit.TextPart("html")
{
Text = @"<p>Hey geffzhang<br>
<p>不好意思,我在测试程序,Sorry!<br>
<p>-- Geffzhang<br>"
};
// create an image attachment for the file located at path
var path = @"C:\Users\MACHENIKE\Desktop\a.png";
var fs = File.OpenRead(path);
var attachment = new MimeKit.MimePart("image", "jpeg")
{ ContentObject = new MimeKit.ContentObject(fs, MimeKit.ContentEncoding.Default),
ContentDisposition = new MimeKit.ContentDisposition(MimeKit.ContentDisposition.Attachment),
ContentTransferEncoding = MimeKit.ContentEncoding.Base64,
FileName = Path.GetFileName(path)
};
var alternative = new MimeKit.Multipart("alternative");
alternative.Add(plain);
alternative.Add(html);
// now create the multipart/mixed container to hold the message text and the
// image attachment
var multipart = new MimeKit.Multipart("mixed");
multipart.Add(alternative);
multipart.Add(attachment);
message.Body = multipart;
using (var client = new MailKit.Net.Smtp.SmtpClient())
{
client.Connect("smtp.qq.com", 465, true); // Note: since we don't have an OAuth2 token, disable
// the XOAUTH2 authentication mechanism.
client.AuthenticationMechanisms.Remove("XOAUTH2"); // Note: only needed if the SMTP server requires authentication
var mailFromAccount = "947099752@qq.com";
var mailPassword = "xxxx";
client.Authenticate(mailFromAccount, mailPassword);
client.Send(message);
client.Disconnect(true);
}
fs.Dispose();
}
}
}
结果:
BUG::
1.其中通过mailkit发送的时候 发送方必须要打开自己的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 一般是在自己的个人中心 2018-11-12 16:11:41
2.一般来说授权码是在个人中心,而且一定有帮助 里面有关于他的服务什么的
FluentEmail
private static void TestSmtpClient()
{
MailMessage mymail = new MailMessage();
mymail.From = new System.Net.Mail.MailAddress(mailFrom);
mymail.To.Add(mailTo);
mymail.Subject = string.Format("C#自动发送邮件测试 From geffzhang TO {0}",mailTo);
mymail.Body = @"<p>Hey geffzhang<br><p>不好意思,我在测试程序,刚才把QQ号写错了,Sorry!<br><p>-- Geffzhang<br>";
mymail.IsBodyHtml = true;
mymail.Attachments.Add(new Attachment(path)); System.Net.Mail.SmtpClient smtpclient = new System.Net.Mail.SmtpClient();
smtpclient.Port = 587;
smtpclient.UseDefaultCredentials = false;
smtpclient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpclient.Host = "smtp.live.com";
smtpclient.EnableSsl = true;
smtpclient.Credentials = new System.Net.NetworkCredential(mailFromAccount, mailPassword);
try
{
smtpclient.Send(mymail);
Console.WriteLine("发送成功"); }
catch (Exception ex)
{
Console.WriteLine("发送邮件失败.请检查是否为qq邮箱,并且没有被防护软件拦截" + ex); }
}
}
AspNetCore 目前不支持SMTP协议(基于开源组件开发邮件发送,它们分别是MailKit 和 FluentEmail )的更多相关文章
- 基于JavaMail的Java邮件发送:复杂邮件发送
参考:http://blog.csdn.net/xietansheng/article/details/51722660package com.bfd.ftp.utils;import java.ut ...
- 【2015上半年总结】js开源组件开发系列索引
js开源组件开发系列一索引 2015.8 by 田想兵 个人网站 从3月份进入新公司以来,时经五个月,我以平均每周1个小组件的速度,已经完成的js组件有22个之余了,已基本上全部用到实际项目中,这些小 ...
- [js开源组件开发]数字或金额千分位格式化组件
数字或金额千分位格式化组件 这次距离上一个组件<[js开源组件开发]table表格组件>时隔了一个月,由于最近的项目比较坑,刚挖完坑,所以来总结性提出来几个组件弥补这次的空缺,首先是金额和 ...
- [js开源组件开发]query组件,获取url参数和form表单json格式
query组件,获取url参数和form表单json格式 距离上次的组件[js开源组件开发]ajax分页组件一转眼过去了近二十天,或许我一周一组件的承诺有了质疑声,但其实我一直在做,只是没人看到……, ...
- [js开源组件开发]network异步请求ajax的扩展
network异步请求ajax的扩展 在日常的应用中,你可能直接调用$.ajax是会有些问题的,比如说用户的重复点击,比如说我只希望它成功提交一次后就不能再提交,比如说我希望有个正在提交的loadin ...
- 【转】基于JavaMail的Java邮件发送
http://blog.csdn.net/xietansheng/article/details/51673073 http://blog.csdn.net/xietansheng/article/d ...
- 教程:基于Spring快速开发电子邮件发送功能
在Spring框架的spring-context-support.jar中有对电子邮件发送功能的封装: 基于Spring开发简单省事,而且更稳定.需要mail.jar包支持 @Component pu ...
- javamail发送邮件,支持yahoo,google,163.com,qq.com邮件发送
https://www.iteye.com/blog/fangyunfeng-1847352 https://blog.csdn.net/weixin_38465623/article/details ...
- 【python3】基于 qq邮箱的邮件发送
脚本内容: #!/usr/bin/python3 # -*- coding: UTF-8 -*- import smtplib from email.mime.text import MIMEText ...
随机推荐
- 迁移hive,不同集群。
step1: 设置默认需要导出的hive数据库为defaultDatabase 在原集群中的任意节点上,新建“.hiverc”文件,加入如下内容: vi ~/.hiverc use defaultDa ...
- King 差分约束 判负环
给出n个不等式 给出四个参数第一个数i可以代表序列的第几项,然后给出n,这样前面两个数就可以描述为ai+a(i+1)+...a(i+n),即从i到n的连续和,再给出一个符号和一个ki当符号为gt代表‘ ...
- matplotlib函数理解
cumsum(),通常用于计算一个数组各行的累加值,函数用法是B = cumsum(A,dim),或B = cumsum(A). def cumsum(self, axis=0, *args, **k ...
- python书籍推荐:Head First Python(中文版)
所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/64/ 来源:python黑洞网,专注 ...
- 2018年多校第三场第一题 A. Ascending Rating hdu6319
比赛地址:http://acm.hdu.edu.cn/contests/contest_show.php?cid=804 题目编号:第一题 A. Ascending Rating hdu6319 题 ...
- Do-Now—团队冲刺博客一(领航篇)
Do Now -- 团队冲刺博客一(领航篇) 团队博客总目录:团队作业第一周 团队作业第二周 Do Now -- 团队冲刺博客一 领航目标 ① 各个成员在 Alpha 阶段认领的任务 ② 明日各个成员 ...
- idea设置调用方法时提示方法注释
如图所示:打开file-->setting-->Editor-->General,搜索show,然后勾选上Show quick documentation on mouse move ...
- 文件操作,列表实例NiceHexSpiral
fr = open('letter.txt',mode='r',encoding='utf-8') plaincode = fr.read() print('明文:' + plaincode) pri ...
- 20175324王陈峤宇 《Java程序设计》第六周学习总结
教材学习内容总结 第七章 一.内部类与外部类的关系 1.内部类可以使用外嵌类的成员变量和方法.2.类体中不可以声明类变量和类方法,外部类可以用内部类声明对象.3.内部类仅供外嵌类使用.4.类声明可以使 ...
- pycahrm 安装Vue项目
首先在pycharm > preference > plugins > vue > 点绿色install 创建一个文件夹 然后cmd里cd到这个文件夹 npm install ...