邮件:事务失败。 服务器响应为:DT:SPM 163 smtp
几年前我做的一个项目,日发邮件最高峰时几十万。自以为对邮件发送方面已经有了一定认识,所以近期机缘巧合之下,又有项目需要发送邮件,不禁自信满满,暗自庆幸能不手到擒来乎?
不想老革命遇到新问题。我原先的邮件发送机制,是生成eml文件,然后扔到windows自带的smtp服务器的pickup目录下,系统即自动发送(见拙作:邮件发送一点心得)。
但今时今日,这些好像都是老皇历了。IIS7默认并没有SMTP,如果操作系统是server,还可以通过添加功能加上去,但WIN7就不行了。偏偏,我们的系统就部署在WIN7下。
我第一个应对之道是看WIN7能不能装那个自带的SMTP,结果是不行,死活没找到。
第二个办法是装个第三方的SMTP,找来找去,找到一个叫做什么FREE SMTP的,装上去以后,打开看,好像忒简单了点。根本没有啥PICK目录的,应该是只能通过代码,搞什么几次握手之类的方法来进行调用。我很烦这个东西。
最后,决定还是直接使用smtp.163.com。网上例子比比皆是。
public interface IEmail
{bool Send(EmailParam param);string Mess { get; }
}
public class EmailParam
{public string From { get; set; }public string To { get; set; }//接收人;多个邮箱用分号隔开public string CC { get; set; }//抄送;多个邮箱用分号隔开public string Subject { get; set; }//标题public string Body { get; set; }//邮件正文
}public class Sender : IEmail
{SmtpClient client;public Sender(){// <add key="eml_host" value="smtp.163.com"/>// <add key="eml_account" value="chendaqu"/>// <add key="eml_pwd" value="1234abcd"/>string host = ConfigurationManager.AppSettings["eml_host"];string account = ConfigurationManager.AppSettings["eml_account"];string pwd = ConfigurationManager.AppSettings["eml_pwd"];client = new SmtpClient();client.Host = host;client.UseDefaultCredentials = false;client.DeliveryMethod = SmtpDeliveryMethod.Network;client.Credentials = new System.Net.NetworkCredential(account,pwd);client.Port = 25;}public string Mess { get; set; }public bool Send(EmailParam param){MailMessage mail = new MailMessage();mail.From = new MailAddress(param.From);getCollection(mail.To,param.To);getCollection(mail.CC, param.CC);mail.Subject = param.Subject;mail.Body = param.Body;mail.SubjectEncoding = Encoding.UTF8;mail.BodyEncoding = Encoding.UTF8;mail.Priority = MailPriority.Normal;mail.IsBodyHtml = true;mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;try{client.Send(mail);}catch(Exception ex){Mess = ex.Message;return false;}return true;}MailAddressCollection getCollection(MailAddressCollection collection,string arstring){if (!String.IsNullOrEmpty(arstring)){string[] ar = arstring.Split(';');foreach (string item in ar){if (String.IsNullOrEmpty(item)) continue;collection.Add(item);}}return collection;}
}
使用单元测试进行调用:
[TestMethod()]
public void SendTest()
{IEmail sender = new Sender();bool ok = sender.Send(new EmailParam(){Subject = "邮件测试7",Body = "Hello World!",From = "chendaqu@163.com",To = "178879771@qq.com;461198190@qq.com",});Assert.AreEqual(true, ok);
}
结果刚开始非常顺利,都能收到邮件;但该单元测试运行了几次以后,就发送失败了。提示:
错误:邮件:事务失败。 服务器响应为:DT:SPM 163 smtp11,D8CowACXNqusR1pYQe3vGA--.16469S2 1482311598,please see http://mail.163.com/help/help_spam_16.htm?ip=219.136.75.223&hostid=smtp11&time=1482311598
开始时以为是因为163邮箱的反垃圾邮件机制,猛查资料,结果一无所获。焦虑攻心之下,我第二天居然感冒了。后来才知道是QQ邮箱的发垃圾邮件机制所致。同一个发送请求中,有一个地址失败,其他的都失败了,所以称为“事务”?
后来就是莫名其妙地好了,可能是邮件内容有所变化,QQ又认为它不是垃圾了。靠。
注:
我这个163邮箱,开启了客户端授权,未清楚对应对反垃圾机制是否有用,好像不开启这个客户端授权也能发送。开启了这个客户端授权后,代码中的密码要使用这个客户端授权密码,而不是登录邮箱的密码。
==================================
以上就是垃圾。这个问题等于没解决。163的SMTP一言不合就将你的邮件当成垃圾邮件,直到第二天才解封。但是很奇怪,采用foxmail作为客户端来发送同样的邮件,却没有问题,说到底还是代码的问题?(outlook没试过,估计也不会有问题)
转载于:https://www.cnblogs.com/leftfist/p/6808673.html
邮件:事务失败。 服务器响应为:DT:SPM 163 smtp相关推荐
- 邮件 事务失败 服务器响应为 DT SPM 163 smtp
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 几年前我 ...
- 搭建邮件服务器 提示554 DT:SPM 163
javamail 搭建邮件服务器的时候,用163就是一个坑. 在我搭建完邮件服务器,并且做好本地测试的时候.我开始发送http请求,准备开始发邮件.参数设置都没有问题.但是就是报错 报554 DT : ...
- perl 用网易发邮件报错 554 DT:SPM 163 smtp14
查看相关链接,貌似被当成垃圾邮件了,发不出去 554 DT:SPM 163 smtp14,EsCowACHUegmKpdc3giRMQ--.29617S2 1553410599,please see ...
- 【华硕 Armoury crate 中 GameVisual 更新色彩配置文件 GameVisual下载失败服务器响应超时问题解决】
华硕 Armoury crate 中 GameVisual 更新色彩配置文件 GameVisual下载失败 服务器响应超时 问题解决 问题描述 解决方法 获取显卡(连接屏幕的那张显卡)硬件ID 获取监 ...
- javaMail SMTPSendFailedException: 554 DT:SPM 163 smtp4
com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 163 smtp4,DtGowAC39BkEKIxX2VoCAA–.130S2 146880 ...
- java mail 554_javaMail 163 邮箱发 qq 邮箱 总是报 554 DT:SPM 163 smtp11
163 邮箱发 qq 邮箱 总是报 554 DT:SPM 163 smtp11 554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件.请检查是否有用户发送病毒或者垃圾邮件: ...
- 163邮箱问题:554 DT:SPM 163 smtp5,D9GowACHO7RNWNdXmXs1Bw--.9035S2
最近公司需要开发一个自定义邮箱功能,上网查询一下,利用163邮箱发送邮件. 由于163 的反垃圾机制,(坑爹机制.) 一般出现 554有在1)测试中用了test,测试,关键字在主题或者内容里面. 但是 ...
- 你想要的完整解决Python smtplib使用163发送邮件时出现 •554 DT:SPM错误smtplib.SMTPDataError: (554, 'DT:SPM 163 smtp5,HdxpC
最近在学习Python于是自己写了个小脚本测试使用smtp发送邮件,一切ok后出现如下错误: smtplib.SMTPDataError: (554, 'DT:SPM 163 smtp1,GdxpCg ...
- 天天生鲜 smtplib.SMTPDataError: (554, b'DT:SPM 163 smtp13
问题描述 Python3.5 + Django2.2 天天生鲜项目在[3-07_django内置函数发送激活邮件]一节中填写完注册信息后提交时出现如下报错: Internal Server Error ...
最新文章
- java环境配置好了还不行,java配置环境java不行
- Toolbar中Overflow Menu不显示问题
- iOS-- pod常用命令
- 用计算机改手机电量,手机电池使用时间增加
- STM32开发 -- UART应用层通信协议分析
- 虚拟主机评测网已经崭露头角
- html中免费的四级联动,利用JS实现省市区街道四级联动插件
- 雷林鹏分享:C# 运算符
- Axure RP chrome插件显示已损坏或者无法安装的解决方法
- redis 亿级查询速度_吊打面试官系列:Redis 性能优化的 13 条军规大全
- Kubernetes 学习总结(23)—— 2022 年 Kubernetes 的 5 个趋势
- vs2013创建c++控制台应用程序
- SSO单点登录之同域登录的实现
- 无标题自用临时文档.C# | python交互
- PostFix postqueue 指令
- 外部库依赖以及 编译
- mysql 与紫金桥_组态软件的国内品牌
- vim 设置配色方案
- 一文弄懂Spring Cloud的5大核心组件详解:Eureka+Hystrix+Zuul+Ribbon
- 投影仪和电视哪个更好?一文科普详细比较
热门文章
- java接口示例_【基础篇】java-接口及其示例
- wpf 修改label值_WPF 获取动态添加控件的值
- 将Web项目部署到华为云服务器的Linux的Tomcat中
- 使用Kotlin写脚本
- 使用python操作postgresql 查询
- 面试java回答优缺点_阿里Java开发面经分享,面试题(附回答)
- java exe 返回值_java调用exe返回值
- python写一个服务_写一个Python的windows服务
- ab压力测试_CentOS安装压力测试工具ApacheBench(ab)
- 面试题整理3 大数的表示及加减法问题