.net 发送qq邮件
最近开发一个项目,需要给客户发送报告邮件,在开发中遇到本地调试发送邮件一切正常,但当部署到服务器上的时候,一直返回“发送失败”,在此记录,以免以后采坑
webapi 端代码:
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="fromMail">发件人邮箱</param>
/// <param name="toMail">收件人邮箱</param>
/// <param name="authorizationCode">发件人授权码</param>
/// <param name="replyTo">收件人回复邮件默认接收地址(不设置也可以)</param>
/// <param name="ccMail">邮件抄送人</param>
/// <param name="filePath">附件地址</param>
/// <param name="sendPeopleCall">收件人称呼</param>
/// <param name="collectSampleDate">收样时间</param>
/// <returns></returns>
public MsgModel SendMails(string fromMail,List<string> toMail,string authorizationCode,string replyTo, List<string> ccMail,List<string> filePath,string sendPeopleCall,string collectSampleDate)
{ try
{
//实例化发送邮件类
MailMessage mailMessage = new MailMessage();
//邮件的优先级 分为 low normal high 通常用Normal即可
mailMessage.Priority = MailPriority.Normal;
//发送人邮件地址
mailMessage.From = new MailAddress(fromMail);
//收件人邮件地址 //考虑群发邮件
foreach(var r in toMail)
{
mailMessage.To.Add(new MailAddress(r));
}
if (replyTo == "" || replyTo == null)
{
replyTo = fromMail;
} //对方回复邮件时默认的接收地址(可以不设置)
//mailMessage.ReplyTo = new MailAddress(replyTo);
if (ccMail != null)
{
//邮件抄送 支持 群发 抄送
foreach (var r in ccMail)
{
mailMessage.CC.Add(r);
}
}
//如果邮件标题包含中文,这里要设置编码方式 否则会出现乱码
mailMessage.SubjectEncoding = Encoding.GetEncoding();
//邮件正文是否是Html 格式
mailMessage.IsBodyHtml = true;
//邮件标题
mailMessage.Subject = $@" REPORT-{collectSampleDate}";
//邮件内容
mailMessage.Body = $@"
Dear {sendPeopleCall},
"; mailMessage.Attachments.Clear();
if (filePath != null&&filePath.Count>)
{
foreach (var r in filePath)
{
var urls = System.AppDomain.CurrentDomain.BaseDirectory.ToString() + r;//获取项目的绝对
//将附件添加到邮件
mailMessage.Attachments.Add(new Attachment(urls));
//获取设置此电子邮件的发送通知
mailMessage.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
} }
//实例化 SmtpClient类
SmtpClient client = new SmtpClient();
client.Host = GetClientHost(fromMail);
//使用安全加密连接
client.EnableSsl = true;
client.Port = ;//默认是25 此处设置成587
//不和请求一块发送
client.UseDefaultCredentials = false; //client.DeliveryMethod = SmtpDeliveryMethod.Network; //验证发送人身份(发件人的邮箱,邮箱里生成的授权码)
client.Credentials = new NetworkCredential(fromMail,authorizationCode); //如果发送失败,SMTP 服务器将发送 失败邮件告知fromEmail
mailMessage.DeliveryNotificationOptions= DeliveryNotificationOptions.OnFailure; client.Send(mailMessage); return new MsgModel
{
Status = true,
Msg = "发送邮件成功" ,
Data = ""
};
}
catch(Exception ex)
{
return new MsgModel
{
Status = false,
Msg = "发送邮件失败!错误:" + ex.Message,
Data=""
};
} }
/// <summary>
/// 根据发送邮箱 识别发件服务器地址
/// </summary>
/// <param name="fromEmail"></param>
/// <returns></returns>
public string GetClientHost(string fromEmail)
{
var host = "";
if (fromEmail.Length != )
{
var addressStr = fromEmail.Trim().Split(new char[] { '@','.'});
switch (addressStr[])
{
case "":
host = "smtp.163.com";
break;
case "":
host = "smtp.126.com";
break;
case "qq":
host = "smtp.qq.com";
break;
case "gmail":
host = "smtp.gmail.com";
break;
case "hotmail":
host = "smtp.live.com";//outlook邮箱
//client.Port = 587;
break;
case "foxmail":
host = "smtp.foxmail.com";
break;
case "sina":
host = "smtp.sina.com.cn";
break;
default:
host = "smtp.exmail.qq.com";//qq企业邮箱
break; }
}
return host;
}
发送邮箱,以及授权码都放在配置文件webconfig 中,这里不展示。
另外:项目是部署到阿里服务器的,此项目邮件发送端口是587,因此在阿里服务器需要设置允许端口587进出。
在此基础上本地调试可正常发送,部署到服务器上就发送失败,经过查阅相关博客,不断的尝试其他博客的解决方法,其中一个博客中说:本地调试发送了邮件成功后,tx那边认为你当前发送邮件的地址为常用的邮件发送地址,再部署到服务器上的时候,tx就认为你是发送广告,就被禁止当前地址发送邮箱,需要解除禁止。禁止一时半会不知道咋去解禁,于是尝试着替换一个qq邮箱账号进行发送邮件,结果真的是发送成功了。
.net 发送qq邮件的更多相关文章
- CI框架使用PHPmail插件发送QQ邮件:
有助请顶,不好请评.0:33 2016/3/12CI框架使用PHPmail插件发送QQ邮件:发送成功,不过修改了主机参数,还包含了一个phpmail中的一个另外的文件,详见下方:参见:http://c ...
- 5分钟 wamp下php phpmaile发送qq邮件 2015最新方法说明
13:40 2015/11/20 5分钟 wamp下php phpmaile发送qq邮件 2015最新方法说明 关键点:现在qq邮箱开通smtp服务后会给你一个很长的独立新密码,发邮件配置中的密码需要 ...
- 【python】脚本连续发送QQ邮件
今天习得用python写一个连续发送QQ邮件的脚本,经过测试,成功给国内外的服务器发送邮件,包括QQ邮箱.163邮箱.google邮箱,香港科技大学的邮箱和爱丁堡大学的邮箱.一下逐步解答相关技巧. 首 ...
- Java发送QQ邮件
面试的时候被问到这个问题,别人问我用Java发过邮件没有,被问得一脸懵逼.然后就研究了一下,不是很难,按照网上的方法折腾了几天就搞出来了. 首先,使用QQ邮箱发送邮件之前需要在邮箱里面配置,开启pop ...
- python3:利用SMTP协议发送QQ邮件+附件
转载请表明出处:https://www.cnblogs.com/shapeL/p/9115887.html 1.发送QQ邮件,首先必须知道QQ邮箱的SMTP服务器 http://service.mai ...
- java mail Received fatal alert: handshake_failure java 无法发送邮件问题 java 发送qq邮件(含源码)
java 无法发送邮件问题 java 发送qq邮件 报错:java mail Received fatal alert: handshake_failure (使用ssl) javax.mail.M ...
- Quartz.NET浅谈一 : 简单Job使用(定时发送QQ邮件)
Quartz.NET是一个全功能的开源作业调度系统,可用于从最小的应用程序到大型企业系统. 直接上代码吧... 一.新建一个控制台项目 略过 二.安装Nuget包 三.创建发送邮箱辅助工具类 stat ...
- 电子邮件协议及GO发送QQ邮件
目录 一.电子邮件的工作机制 1.1 SMTP 1.2 POP3 1.3 IMAP 二.邮件地址 三.MIME信息 四.使用golang发送qq邮件 一.电子邮件的工作机制 提供电子邮件服务的协议叫做 ...
- java代码如何发送QQ邮件
近来想写一个qq之间互相发送邮件的工具.奈何一直报错服务错误: org.apache.commons.mail.EmailException: Sending the email to the fol ...
- 使用python发送QQ邮件
这里用到了Python的两个包来发送邮件: smtplib 和 email . Python 的 email 模块里包含了许多实用的邮件格式设置函数,可以用来创建邮件“包裹”.使用的 MIMEText ...
随机推荐
- Java中接口和抽象类的区别?
抽象类 抽象类必须用 abstract 修饰,子类必须实现抽象类中的抽象方法,如果有未实现的,那么子类也必须用 abstract 修饰.抽象类默认的权限修饰符为 public,可以定义为 public ...
- Wonder暂停开发,开始写书
公告 大家好,我们决定暂时停止开发Wonder,但会继续维护当前的Wonder版本(如继续维护官网.在线编辑器.QQ群等). 我们当前的主要任务是 写书:基于Wonder 1.0版本的开发经验,写一本 ...
- Ansible配置批量推送公钥到被管理端
01.yum安装ansible(推荐) sudo yum install ansible 02.配置被管理端主机IP清单 [root@ansible_50 ansible]$ cp /etc/ansi ...
- 初学Manjaro
近期,看有朋友在使用Manjaro系统,感觉这个系统挺不错,于是我也安装了Manjaro,学习一下!!!! Manjaro下载地址:https://manjaro.org/download/ Manj ...
- 使用 Redis 进行阅读数统计并定时持久化
之前,统计每篇博文的阅读数的方式是经过筛选去重之后直接更新数据库,并发压力直接传导到数据库,假设1秒有1000个并发请求,传统方案会在1秒内并发进行1000次数据库更新操作. 为了降低数据库的并发压力 ...
- 从无到有通过IDEA搭建SpringBoot项目
本人第一次写博客希望记录当下,努力成为IT界中的清流,写的不好多多包涵. SpringBoot是由Pivotal团队在2013年开始研发.2014年4月发布第一个版本的全新开源的轻量级框架.它基于Sp ...
- Spring Cloud进阶之路 | 一:服务注册与发现(nacos)
转载请注明作者及出处: 作者:银河架构师 原文链接:https://www.cnblogs.com/luas/p/12068846.html 1.版本 最新稳定版本为1.1.4,也可以从发版说明.博客 ...
- python 内置函数zip,map,三元,lambda表达式
#内置函数zip(),将多个可迭代对象(集合等)按照顺序进行组合成tuple元祖,放在zip 对象进行存储,: #当参数为空时候,返回空 #如果 zip() 函数压缩的两个列表长度不相等,那么 zip ...
- C#使用Linq to csv读取.csv文件数据
前言:今日遇到了一个需要读取CSV文件类型的EXCEL文档数据的问题,原本使用NPOI的解决方案直接读取文档数据,最后失败了,主要是文件的类型版本等信息不兼容导致.其他同事有使用linq to csv ...
- 利用Python写一个抽奖程序,解密游戏内抽奖的秘密
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 极客挖掘机 PS:如有需要Python学习资料的小伙伴可以加点击下 ...