postfix 501 Syntax: HELO hostname如何解决?

jing31 发布于 2010/07/29 19:10
阅读 5K+
收藏 1

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

加载中
0
绿悠悠
绿悠悠

你也没说是什么问题啊?什么现象啊

0
jing31
jing31

transport.connect((String) props.get("mail.smtp.host"), username, password);  

执行到上面这句话的时候出现错误,debug信息是:javax.mail.MessagingException: 501 Syntax: HELO hostname



0
jing31
jing31

工程在windows下连接linux的postfix就好用,但是把工程放在linux下运行就不好用了,郁闷啊~

0
jing31
jing31

刚刚查看了一下/var/log/maillog

当出现上面错误的时候,一点log都没有。

应该根本就没有连接到smtp服务器。

0
jing31
jing31

解决了,是hosts文件写法有错误,hosts里面制定的应该是机器名,我中途修改过一次机器名,但是hosts文件里面对应的名字没有修改。

修改过后,已经好用了~

结贴~

s
sunliyang
大神,,我的问题也是一样的,你结贴的方法我不太明白,望帮忙,急急急
0
s
sunliyang
还是没明白,望大神帮忙急急急
0
新八不吐槽
新八不吐槽

不是把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

返回顶部
顶部