先贴上错误信息,便于搜索引擎采集,也送给遇到此问题的技术朋友们。

smtp 501 Syntax error (no parameters allowed) (#5.5.4)

背景描述:

使用TCP发送邮件,在使用新浪邮箱进行smtp发送邮件时报出该错误(其他邮箱可能也存着该问题),QQ邮箱无该问题。

========================================================

发送邮件其实很简单,对于像鄙人这种极限追求精简的人来说,肯定不乐意使用第三方邮件插件。使用方式、结构、代码中的流程,不一定符合本人的开发习惯。故此自己通过TCP编写发送邮件的实例,源码地址:https://gitee.com/coodyer/Coody-Framework/tree/original/coody-mail

以上截图是一次smtp发送过程抓包情况,实际上只需要建立连接,然后遵循以上规范发送相应的TCP报文即可。

代码如图(修复后)(可直接上码云下载源代码):

过去一直使用腾讯邮箱,然当我更换新浪邮箱的时候,抛出了让本人非常无语的错误,无尽的501错误。

smtp 501 Syntax error (no parameters allowed) (#5.5.4)

从错误来看,错误码是501,而细分下去的错误是5.5.4

通过查阅SMTP错误码描述来看:

501 5.5.4

Invalid Address

不合法的IP地址

若收信端邮件服务器是MS Exchange Server 5.5, 2000, 2003而收到此错误讯息时,

请与收信端邮递员联络并附上http://support.microsoft.com/kb/291828.将Exchange Server予以修正。

不合法的IP地址,鄙人再三确认,发信的host没写错,smtp.sina.com。去新浪邮箱查看发信地址,确信是smtp.sina.com无误。

而发送邮件时响应内容如下:

220 smtp-2-194.smtpsmail.fmail.yf.sinanode.com ESMTP

250-smtp-2-194.smtpsmail.fmail.yf.sinanode.com 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-STARTTLS 250 8BITMIME 250 smtp-2-194.smtpsmail.fmail.www.baihua178.cn yf.sinanode.com Exception in thread "main" org.coody.framework.mail.exception.MailException: 邮件服务器初始化失败:250 smtp-2-194.smtpsmail.fmail.yf.sinanode.com at org.coody.framework.mail.sender.EmailSender.init(EmailSender.java:57) at org.coody.framework.mail.sender.EmailSender.(EmailSender.java:34) at org.coody.framework.mail.sender.EmailSender.main(EmailSender.java:129)

于是使用QQ邮箱发送一遍邮件,走查正常的响应内容:

220 smtp.qq.com Esmtp QQ Mail Server

250 smtp.qq.com

220 Ready to start www.lafei6d.cn 334 VXNlcm5hbWU6 334 UGFzc3dvcmQ6 235 Authentication successful 250 Ok 250 Ok 354 End data with . 250 Ok: queued as

发现第一行,

QQ邮箱:220 smtp.qq.com Esmtp QQ Mail Server

新浪邮箱:220 smtp-2-194.smtpsmail.fmail.yf.sinanode.com ESMTP

这是我们在建立socket连接后,发送HELO(EHLO)前服务器返回的信息。

通过测试发现,原因很简单,当我们连上socket(smtp)发信服务器后

服务器重新指定了特定的esmtp地址(或者对我们来说,叫做别名更合适吧)

故此,我们发送HELO(EHLO)时,键入的smtp,必须是服务器指定的esmtp标识

220 smtp-2-194.smtpsmail.fmail. www.qiaoheibpt.com .sinanode.com ESMTP

250-smtp-2-194.smtpsmail.fmail.yf.sinanode.com

250-AUTH LOGIN PLAIN

250-AUTH=LOGIN PLAIN

250-STARTTLS

250 8BITMIME

250 smtp-2-194.smtpsmail.fmail.yf.sinanode.com

Exception in thread "

www.huizhonggjpt.cn

" org.coody.framework.mail.exception.MailException: 邮件服务器初始化失败:250 smtp-2-194.smtpsmail.fmail.yf.sinanode.com

at org.coody.framework.mail.sender.EmailSender.init(www.jiuhuaylgw.cn EmailSender.java:57)

at org.coody.framework.mail.sender.EmailSender.(www.xinyueylzc.cn EmailSender.java:34)

at org.coody.framework.mail.sender.EmailSender.main(www.tengyao3zc.cn EmailSender.java:129)

于是使用QQ邮箱发送一遍邮件,走查正常的响应内容:

220 smtp.qq.com Esmtp www.lafei6v.cn  Mail Server

250 smtp.qq.com

220 Ready to start TLS

334 VXNlcm5hbWU6

334 UGFzc3dvcmQ6

235 Authentication successful

250 Ok

250 Ok

354 End data with .www.shentuylzc.cn

250 Ok: queued as

于是:

不出意外,当我们看到了 250 ok queue id 85626825952741 的响应,结果并没有太大意外。我们成功收到了邮件

====================================

注:鄙人并不了解邮件服务器的协议规范,纯属跟随tcp包进行模拟,如有解说不正确的地方,专业人员可指出并修改。鄙人只是苦于在网上找不到相关技术资料,故此将鄙人的解决方案记录在此,送给碰到此问题的朋友们。

md+邮件服务器+334错误,邮件发送,无尽的501错误。TCP发送邮件解决方案相关推荐

  1. 我的电脑ip攻击邮件服务器,如何避免邮件服务器IP被列入黑名单

    随着大量垃圾邮件在全球范围内传播,对于管理员来说,了解其IP地址被列入黑名单的潜在原因变得越来越重要.垃圾邮件发送者使用各种技巧来尝试发送尽可能多的垃圾邮件而不泄露其身份.他们通过各种技术来做到这一点 ...

  2. 避免我们的邮件服务器发出的邮件被当成垃圾邮件

    避免我们的邮件服务器发出的邮件被当成垃圾邮件 本文转自(http://hi.baidu.com/dongfangmn/item/75260e0285dbb6d972e67622) (经过两天的努力,终 ...

  3. 服务器发不了邮件,发邮件服务器-如何发邮件?为什么发不出去?服务器是什么?发邮件时,信息要服务器 爱问知识人...

    Outlook Express邮箱使用全攻略(转自云之渊论坛: ) 1.防止OE发送乱码正确的方法是: 首先,在邮件编辑窗口中,用鼠标单击菜单栏中的"格式"菜单,并从弹出的下拉菜单 ...

  4. docker使用Inbucket搭建邮件服务器用于接受邮件

    docker使用Inbucket搭建邮件服务器用于接受邮件 很多账号在注册的时候,需要邮箱进行验证,之后找回密码等需要.但是它们又有可能给你发垃圾邮件,要是有一个邮箱服务器能接收自己域名下所有的邮件地 ...

  5. 邮件服务器名,接受邮件服务器名称有哪些

    C>如何在outlook express进行设置(OUTLOOK是WINDOWS自带的,一般在开始---程序里就可以找到,或者在C:Program FilesOutlook Express) 设 ...

  6. 防止Domino邮件服务器作为垃圾邮件转发服务器

    故障原因: Domino邮件服务器被作为垃圾邮件转发服务器,造成邮件收发严重阻塞 解决方法: 在服务器配置的"路由/smtp"---- "限制与控制" ---- ...

  7. Domino邮件服务器防垃圾邮件中转

    Domino邮件服务器一旦被垃圾邮件服务器相中,则可能成为垃圾邮件的中转站,尤其在大量垃圾邮件转发的时候,会造成服务器的严重堵塞,我们可以通过对Domino邮件服务器的设置来进行防范,具体步骤如下: ...

  8. 邮件服务器专用术语,邮件群发中的常见术语

    邮件营销是企业常用的营销方式,而邮件群发最基本的术语你知道吗? 邮件营销指的是批量外发邮件的发送行为,不同的邮箱服务商对于邮件群发的频率定义不同,但是对于开通邮件群发平台账号涉及的术语则是大同小异的. ...

  9. 邮件服务器过滤,Winmail 邮件服务器软件

    目前由于垃圾邮件的泛滥,绝大多数邮箱每天都会收到大量的垃圾邮件,深受垃圾邮件骚扰.如何有效的防止垃圾邮件已经成了摆在当前邮件系统面前的最为严峻的问题.下面就 winmail 如何来防止垃圾邮件作几点归 ...

最新文章

  1. iPhone XR XS 底部固定定位偏移解决方案
  2. 【程序员跳槽】学弟被高薪挖走不到一年就后悔的无奈经历,到底是老板的水深?还是学弟太年轻?
  3. 【OpenGL】三、Visual Studio 2019 配置 GitHub ( 将项目上传到 GitHub )
  4. 概率统计:第八章:假设检验
  5. 有关javabean的说法不正确的是_【以案说法】从业人员劳动保护用品费不能省!否则得不偿失.........
  6. TextBox只读时不能通过后台赋值取值解决办法
  7. 在Js或者cess后加版本号 防止浏览器缓存
  8. pillow 初级用法
  9. php 网络是否通,测试网络连通性的命令是什么?
  10. 华为手机耳机sws音效是什么_耳机sws音效是什么 华为手机耳机sws音效是什么
  11. 为什么要进行网络的分层?
  12. 转载金阳光测试:关于产品的三类文档
  13. 爬取淘宝评论以及词云图
  14. 计算机网络期末4小时速成
  15. 我该怎么自学3D建模?
  16. oracle 字符串日期转指定格式日期,Oracle和Sql 日期格式与字符串格式相互转换
  17. SWUN 1423 - 伊邪那美
  18. 谷歌负载均衡Maglev实现简析
  19. 关于雨林木风版的linux操作系统ymlf_os_3.0
  20. Hibernate【映射】知识要点

热门文章

  1. 51单片机PS2键盘解码实验--C51源代码
  2. 用JS的Date对象计算两个时间的时间差
  3. 最新UE下载地址和可使用注册码(公布)
  4. Mysql常用的sql语句大全
  5. 物理信息神经网络PINNs : Physics Informed Neural Networks 详解
  6. 【docker系列】容器自启动与守护进程停止后容器保活
  7. if [ $# -ne 1 ] 作用
  8. 单片机开发和嵌入式开发流程图
  9. 【Oracle】关于索引的那些事
  10. 论文阅读_Hawkeye: Towards a Desired Directed Grey-box Fuzzer