记一次邮件推送的坑,c#基于smtp使用腾讯企业邮箱发送邮件总是失败的原因
今天在弄企业邮箱推送的东西,原版代码是这样的
public void SendEmail(string title, string content)
{
try
{
MailMessage mailMsg = new MailMessage();
mailMsg.To.Add(new MailAddress(ToEmails));
mailMsg.From = new MailAddress(FromEmail);
// 邮件主题
mailMsg.Subject = title;
// 邮件正文内容
mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(content, null, MediaTypeNames.Text.Html));
// 添加附件
//string file = "D:\\1.txt";
//Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
//mailMsg.Attachments.Add(data);
//邮件推送的SMTP地址和端口
SmtpClient smtpClient = new SmtpClient(EmailHost, EmailPort);
//SmtpClient smtpClient = new SmtpClient(EmailHost);
// 使用SMTP用户名和密码进行验证
System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(FromEmail, FromEmailPW);
smtpClient.EnableSsl = true;
//smtpClient.Timeout = 10000;//超时
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = credentials;
smtpClient.Send(mailMsg);
}
catch (Exception ex)
{ throw;
} }
按照腾讯企业邮箱给的文档,我设置好邮箱账号、密码、smtp服务器、端口号之后开始测试,发现总是报错,当时腾讯企业邮箱的官方提示是这样的

可以看到,这里给的端口号是465,(这里不知道要不要骂娘了)
然后我断断续续的测试了一下午,发现怎么都发不出邮件,按理不会啊,就这么几行代码的事情,于是我试着删除一些配置,让程序按照自己的默认值来运行,于是我删除了端口号的配置,代码如下:
/// <summary>
///
/// </summary>
/// <param name="UserName"></param>
/// <param name="Money"></param>
public void SendEmail(string title, string content)
{
try
{
MailMessage mailMsg = new MailMessage();
mailMsg.To.Add(new MailAddress(ToEmails));
mailMsg.From = new MailAddress(FromEmail);
// 邮件主题
mailMsg.Subject = title;
// 邮件正文内容
mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(content, null, MediaTypeNames.Text.Html));
// 添加附件
//string file = "D:\\1.txt";
//Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
//mailMsg.Attachments.Add(data);
//邮件推送的SMTP地址和端口
//SmtpClient smtpClient = new SmtpClient(EmailHost, EmailPort);
SmtpClient smtpClient = new SmtpClient(EmailHost);
// 使用SMTP用户名和密码进行验证
System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(FromEmail, FromEmailPW);
smtpClient.EnableSsl = true;
//smtpClient.Timeout = 10000;//超时
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = credentials;
smtpClient.Send(mailMsg);
}
catch (Exception ex)
{ throw;
} }
结果就发出去了,我是真的日了狗,邮件发送失败的提示的提示也没有具体信息,先记录一下,以后使用这些企业邮箱实现邮件推送,最好不要用他们提供的端口号,感觉只需要有发信服务器就行了。
记一次邮件推送的坑,c#基于smtp使用腾讯企业邮箱发送邮件总是失败的原因的更多相关文章
- 解决.NET Core中MailKit无法使用阿里云邮件推送服务的问题
在博问中(.net core怎么实现邮件发送)知道了MailKit无法使用阿里云邮件推送服务发送邮件的问题,自已实测也遇到同样的问题,而用自己搭建的邮件服务器没这个问题. 于是,向阿里云提交了工单.. ...
- Laravel 下结合阿里云邮件推送服务
最近在学习laravel做项目开发,遇到注册用户推送邮件的问题,之前用java做的时候是自己代码写的,也就是用ECS推送邮件,但是现在转php的laravel了就打算用php的邮件发送功能来推送邮件, ...
- 用ASP.NET Core 1.0中实现邮件发送功能-阿里云邮件推送篇
在上篇中用MailKit实现了Asp.net core 邮件发送功能,但一直未解决阿里云邮件推送问题,提交工单一开始的回复不尽如人意,比如您的网络问题,您的用户名密码不正确等,但继续沟通下阿里云客户还 ...
- RedMine项目管理系统邮件推送设置(Windows环境)
RedMine项目管理系统有邮箱推送功能,当Bug,安全漏洞等内容被修改.解决.评论的时候,系统会通过邮件 及时的通知你的团队和客户.邮件通知的环节.形式.时间.接受人均可定制,功能十分实用. 下面是 ...
- wordpress使用阿里云邮件推送服务实现发送邮件
之前用腾迅云时,配置了wordpress是可以使用邮件服务的,然而到了阿里云,却无法使用了,有人说是因为阿里云关了25端口,但腾迅好像也关了. 百度看看有没有其他方法,最终让我找到个方法,可惜不是很完 ...
- Delphi阿里云邮件推送【支持单一发信、邮件批量发送和获取指定条件下的发送数据】
作者QQ:(648437169) 点击下载➨Delphi阿里云邮件推送 阿里云api文档 [Delphi阿里云邮件推送]支持SingleSendMail(单一发信接口). ...
- SpringBoot 简易实现热搜邮件推送,妈妈再也不用担心我不了解国家大事了
1.前言 上班的时候,无聊的时候,偶尔跑去百度看下热搜,所以就萌生出这种想法,通过邮件推送的方式实现效果,首先找到百度热搜的页面 热搜,话不多说,直接开干. 2.环境准备 因为是个SpringBoot ...
- jenkins持续集成Allure生成报表+邮件推送
本次基于<jenkins 生成HTML报表,邮件推送>的基础上将生成HTML报表修改为Allure生成报表,可以参考官方文档:https://docs.qameta.io/allure/# ...
- MVC4/5+jquery+bootstrap样式+dataTables+linq+WCF+EF6后台和前台的框架集合!好蛋疼哦!数据库支持MYSQL 和MSSQL,oracle。集成腾讯企业邮箱收邮件同步用户SSO登陆等功能。
花费了我好多心血,才做出来,下个项目准备用这个框架! 大家有没有做这方面的可以交流一下! 花费了我好多心血,才做出来,下个项目准备用这个框架! 大家有没有做这方面的可以交流一下! 花费了我好多心血,才 ...
随机推荐
- SpringMVC返回Map类型转换成JSON失败
错误信息:WARN DefaultHandlerExceptionResolver:380 - Failed to write HTTP message: org.springframework.ht ...
- 《你不知道的JavaScript(上)》笔记——作用域是什么
Javascript是一门编译语言,它不是提前编译的, 编译结果也不能在分布式系统中进行移植. 在传统编译语言的流程中, 程序中的一段源代码在执行之前会经历三个步骤, 统称为"编译" ...
- UML期末复习题——2.7:UML Sequence Diagram
第七题:顺序图 重要概念: 1. 顺序图的主要介绍,在之前对第5题“系统顺序图”的解析讲解里已经很详细了,在这里只是对部分不全面的内容进行补充. 第五题:系统顺序图&后置条件 http://w ...
- js生成带log的二维码(qrcodejs)
github: qrcodejs cdn: http://static.runoob.com/assets/qrcode/qrcode.min.js #qrcode #qrcode margin: 2 ...
- Servlet的三种实现方式
A: 实现Servlet接口 B: 继承GenericServlet C: 继承HttpServlet,它是对Http协议进行了封装
- OpenCL如何判定一个work-group的最大Local Memory大小
最近有不少朋友提及到如何能在运行时获悉一个GPU的最大local memory的尺寸.由于OpenCL对各类处理器开放,因此不同处理器所拥有的local memory大小也各不相同.即便是GPU,甚至 ...
- 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_07-新增页面-前端-页面完善
在新增页面加返回按钮 <el-button type="primary" @click="go_back" >返回</el-button> ...
- [ML] Linear Discriminant Analysis
虽然名字里有discriminat这个字,但却是生成模型,有点意思. 判别式 pk 生成式 阅读:生成方法 vs 判别方法 + 生成模型 vs 判别模型 举例: 判别式模型举例:要确定一个羊是山羊还是 ...
- swift 第一课 基础知识-1
1. 基本的打印: print("这是学习 swift 的第一课") var varA = print("a 的值是 \(varA)") //注:字符串打印参数 ...
- vue项目中请求头为applicationx-www-form-urlencoded的参数传递
当请求接口的请求头如下图所示时, 前端在传参时需要先新建一个URLSearchParams对象,然后将参数append到这个对象中 const params = new URLSearchParams ...