postfix 501 Syntax: HELO hostname如何解决?
postfix搭建好了,用outlook可以正常发送mail给gmail,在gmail中也正常收到了。
可是用javamail发送就会出现下面的错误。
javax.mail.MessagingException: 501 Syntax: HELO hostname
另外,该段程序原来在windows下是好用的,不知道为什么在rhel5下就不好用了。
查了好久,有的说需要修改hosts文件:
xxx.xxx.xxx.xxx smtp.mydomain.com
试过了,无效。
有的说,直接把程序中的smtp.mydomain.com修改为IP也是试验过了,还是无效。
还有其他的可能吗?红薯,oschina是怎么做的啊?
props.put("mail.smtp.auth", "true"); props.put("mail.smtp.host", hostName) Authenticator auth = new PopupAuthenticator(username, password); Session mailSession = Session.getInstance(props, auth); Transport transport = mailSession.getTransport("smtp"); transport.connect((String) props.get("mail.smtp.host"), username, password); transport.sendMessage(mimeMsg, mimeMsg .getRecipients(Message.RecipientType.TO)); transport.close();
static class PopupAuthenticator extends Authenticator { private String strUser; private String strPwd; public PopupAuthenticator(String user, String password) { this.strUser = user; this.strPwd = password; } protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(strUser, strPwd); } }大家能帮忙看看怎么回事吗?
好像不是postfix的问题,好像是linux服务器下跑javamail的问题。
web服务是resin
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
不是把SMTP服务器地址配到hosts文件中,是吧linux服务器机器名配上,就是谁发邮件配谁的IP和对应机器名。
首先命令 hostname 找到机器名 如 abc-1234,还有服务器的公网IP(或内网IP,127.0.0.1我没试过)
如下:
127.0.0.1 localhost
255.255.255.255(服务器公网IP) abc-1234(服务器hostname机器名)
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
还是没明白,望大神帮忙急急急
大神,,我的问题也是一样的,你结贴的方法我不太明白,望帮忙,急急急
解决了,是hosts文件写法有错误,hosts里面制定的应该是机器名,我中途修改过一次机器名,但是hosts文件里面对应的名字没有修改。
修改过后,已经好用了~
结贴~
工程在windows下连接linux的postfix就好用,但是把工程放在linux下运行就不好用了,郁闷啊~
transport.connect((String) props.get("mail.smtp.host"), username, password);
执行到上面这句话的时候出现错误,debug信息是:javax.mail.MessagingException: 501 Syntax: HELO hostname