linux 环境javaExmail 发腾讯企业邮箱 出现501 helo hotsname问题

在确认填写的邮件发送的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)

 

二:
     项目放在docker容器里,每次重启会还原hosts文件,这样每次重启都要重新绑定hosts;

    修改代码:

       Properties props = new Properties(); 

      //添加该属性  

       props.put("mail.smtp.localhost", "localhost");

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值