当前位置: 首页 > news >正文

解决发邮件出现“501 Domain address required: HELO”问题

今天出现了一个奇怪的问题,产品机A上有一个邮件服务器,产品机A和产品机B的java程序都是用A上的邮件服务器发邮件,但是测试发现,产品机B上的java程序发送邮件正常,而产品机A上的java程序发送不出去,更奇怪的是A上的php程序也能够发送邮件!

查到tomcat日志如下:
 
 
 
  1. javax.mail.MessagingException: 501 Domain address required: HELO  
  2. at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1481)  
  3. at com.sun.mail.smtp.SMTPTransport.helo(SMTPTransport.java:917)  
  4. at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:417)  
  5. at javax.mail.Service.connect(Service.java:288)  
  6. at javax.mail.Service.connect(Service.java:169)  
  7. at 
比较了A和B的java程序,完全一模一样。
查了半天百度,google都没有结果
最后找到了一个说法是因为hostname引起的,于是我用hostname命令查到了A的hostname是PRODA,而ping 它却是没有结果,看了一下/etc/hosts文件中,发现“127.0.0.1 PROD-A”,写多了一杠

 
改好之后再测试就能够发送了
我估计虽然传的是server的域名,但是mail.jar会先获取本机的hostname进行解析,解析不到就不发送HELO命令了,但是Server需要检测这个命令。而php的发邮件程序实现时不判断hostname就直接发送HELO命令,因此能够发送成功

     本文转自yifangyou 51CTO博客,原文链接:http://blog.51cto.com/yifangyou/1045819,如需转载请自行联系原作者




相关文章:

  • eclipse的离线汉化
  • Java新版本的开发已正式进入轨道,版本号18.3
  • sed和gawk基础
  • [C]整形提升(转载)
  • 软考高级(四)
  • 大数据等最核心的关键技术:32个算法
  • 处理数据对象的实用函数
  • es6笔记干货
  • 小提琴图
  • gitlab-ci配置详解(一)
  • 解决firefox疯狂读硬盘的问题
  • 动态类型序列化
  • 【java】java学习之路-01-Linux基础(一)
  • NullAway:Android上的NullPointerExceptions的开源工具
  • ASP.NET MVC Model元数据(五)
  • php的引用
  • gulp 教程
  • JAVA SE 6 GC调优笔记
  • Java多态
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • mysql 5.6 原生Online DDL解析
  • MySQL主从复制读写分离及奇怪的问题
  • PHP 小技巧
  • Rancher-k8s加速安装文档
  • vue 个人积累(使用工具,组件)
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 程序员最讨厌的9句话,你可有补充?
  • 写代码的正确姿势
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 在Mac OS X上安装 Ruby运行环境
  • AI算硅基生命吗,为什么?
  • 进程与线程(三)——进程/线程间通信
  • ​第20课 在Android Native开发中加入新的C++类
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • (39)STM32——FLASH闪存
  • (ibm)Java 语言的 XPath API
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (数据结构)顺序表的定义
  • (四) 虚拟摄像头vivi体验
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • ******IT公司面试题汇总+优秀技术博客汇总
  • 、写入Shellcode到注册表上线
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .NET Micro Framework初体验
  • .NET MVC 验证码
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .net专家(高海东的专栏)
  • [2013AAA]On a fractional nonlinear hyperbolic equation arising from relative theory
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [AIGC] 开源流程引擎哪个好,如何选型?
  • [ai笔记3] ai春晚观后感-谈谈ai与艺术
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标