解决JavaMail 发送邮件javax.mail.MessagingException: 501 Syntax: HELO hostname问题
2016-03-16 15:22
836 查看
前些天,在Linux服务器上使用JavaMail发送邮件时,总是报javax.mail.MessagingException: 501 Syntax: HELO hostname这个错误,在确认填写的邮件发送的host没问题的情况下,而且在本地Windows环境下,是可以正常发送的,这就有点诡异了,莫非最近人品不好?! 好吧,一番折腾之后,终于找到了原因了。
解决办法:
1、先用hostname查看服务器的主机名称,然后本地试探性的ping一下这个hostname,很遗憾找到不到对应的ip主机。
2、修改/etc/hosts文件,添加hostname的名称对应到127.0.0.1上边,哦了!在次发送邮件,成功!
原因:
JavaMail发送邮件时,会提取本地hostname之后,会已ip的形式去发送邮件,但是在linux服务器下,无法解析hostname对应的本机ip地址,导致JavaMail无法调用ip发送。Postfix 收到这种邮件将拒绝发送,而产生 501 错误。(windows服务器可以发送,是由于采用了不netbios 协议去获得该主机的 ip 地址,所以可以获取到ip)
截图操作:
解决办法:
1、先用hostname查看服务器的主机名称,然后本地试探性的ping一下这个hostname,很遗憾找到不到对应的ip主机。
2、修改/etc/hosts文件,添加hostname的名称对应到127.0.0.1上边,哦了!在次发送邮件,成功!
原因:
JavaMail发送邮件时,会提取本地hostname之后,会已ip的形式去发送邮件,但是在linux服务器下,无法解析hostname对应的本机ip地址,导致JavaMail无法调用ip发送。Postfix 收到这种邮件将拒绝发送,而产生 501 错误。(windows服务器可以发送,是由于采用了不netbios 协议去获得该主机的 ip 地址,所以可以获取到ip)
截图操作:
相关文章推荐
- java未解惑
- Java关闭钩子
- JAVA_桥接模式
- Java中的异常处理机制的简单原理和应用以及连接池理解
- 使用 Java 执行器实现线程池
- java.lang.OutOfMemoryError: PermGen space
- 理解java接口和抽象类
- java在文章中找出关键词
- SpringMVC学习记录2
- [疯狂Java]多线程:进程和线程的概念
- Java的string类为什么是不可变的
- java 截取小数位数
- Java高级开发工程师考纲
- Java NIO系列教程(十二) Java NIO与IO
- idea 集成gradle(一)hello world
- java获取各种格式时间工具大全
- 在java中生成二维码,并直接输出到jsp页面
- Java-----隐藏手机号中间四位
- java集合中HashSet引起的内存泄漏问题
- Spring Security 3.x 完整入门教程