如何解决“501句法无效的HELO参数”?

问题描述:

我使用两个进出口的发送和中继主机,发送主机似乎提供:如何解决“501句法无效的HELO参数”?

HELO foo_bar.example.com 

响应:

501 Syntactically invalid HELO argument(s) 

+2

在smtp中继服务器上运行并重启exim4 echo'helo_allow_chars = _'> /etc/exim4/conf.d/main/04_exim4-helo_hack – Ranguard 2008-09-17 20:37:54

下划线在互联网主机名中并不实际有效,尽管有人仍在使用它们。一个理智的DNS服务器不应该允许你为它们记录。

更改您系统的主机名称,使其有效,希望这可以解决它。

HELO的参数应该是主机名或IP地址。 foo_bar.example.com既不是IP地址也不是主机名(下划线在主机名中是非法的),所以错误信息是正确的,没有什么可解决的。

使用qmail我碰到过这个问题。我意识到这是因为以前未完成的安装。

1)当发送电子邮件的qmail宣布自己与其他SMTP服务器“HELO ...”,然后在增加什么是文件:/var/qmail/control/me

(有时文件位于/var/qmail/control/helohost

2)这个文件应该有一个有效的DNS条目的主机名。

矿没有它有(none)这就是为什么邮件都无法发送。

花了这么多小时试图解决这个问题后,在我的情况下,从无到有,我最终提出了一个解决方案。就我而言,只有部署到Suse OS的系统突然停止发送电子邮件,但不会运行在Ubuntu上的那些(相同)。在耗尽并消除了所有建议的possibilities这个问题,甚至考虑改变这些机器的操作系统后,我发现发送邮件服务对于主机的主机名是明智的。在Ubuntu机器的文件/ etc/hosts中只有以下行:

127.0.0.1 localhost

等人的Suse的机器,停止发送电子邮件。从编辑的Suse机/ etc/hosts来

127.0.0.1 localhost proplad

其中proplad是机器的主机名后,错误是消失了。似乎某些安全策略(可能来自smtp服务)使用通过API传递的主机名信息,在Ubuntu机器中忽略这些信息,但在Suse机器中则不会。希望这可以帮助其他人,避免在互联网上进行大量的研究。

Diago的回答帮助我解决了我一直在想的问题。

我们的Suse OS也停止了工作。尝试了我在这里和谷歌上找到的每一条建议。没有工作。试图添加我们的域名到etc/hosts但是没有帮助。

通过hostname命令获取服务器的主机名。就像Digao建议的那样将该主机名添加到etc/hosts文件中。

127.0.0.1 localhost susetest

保存更改。后缀停止,后缀开始。现在就像一种魅力。

谢谢您的建议。对不起,我没有足够的声望投票或评论你的帖子。