我在发送和中继主机上使用exim,发送主机似乎提供:
HELO foo_bar.example.com
回应:
501 Syntactically invalid HELO argument(s)
答案 0 :(得分:6)
答案 1 :(得分:1)
尽管有些人仍在使用它们,但是下划线在互联网主机名中实际上并不有效。一个理智的DNS服务器不应该允许您拥有它们的记录。
更改系统的主机名,使其有效,希望这可以解决它。
答案 2 :(得分:1)
花了这么多时间试图解决这个问题,在我的情况下,这个问题从无到有,我最终得到了一个解决方案。就我而言,只有部署到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机器的情况下则不然。希望这有助于其他人,避免在互联网上进行大量的研究。
答案 3 :(得分:1)
Diago的回答帮助我解决了我一直想弄清楚的问题。
我们的Suse OS也停止了无处不在的工作。尝试了我在这里和谷歌上发现的每一个建议。没有任何效果。尝试将我们的域添加到etc / hosts但是没有帮助。
使用hostname命令获取服务器的主机名。将该主机名添加到etc / hosts文件中,就像Digao建议的那样。
127.0.0.1 localhost susetest
我保存了更改,然后运行postfix stop,postfix start。现在就像魅力一样。
答案 4 :(得分:0)
HELO
的参数应该是主机名或IP地址。 foo_bar.example.com既不是IP地址也不是主机名(下划线在主机名中是非法的),因此错误消息是正确的,无需修复。
答案 5 :(得分:0)
使用qmail我遇到了这个问题。我意识到这是因为之前未完成的安装。
1)发送电子邮件时,qmail通过“HELO ...”向其他SMTP服务器宣布自己,然后添加文件中的内容:/var/qmail/control/me
(有时文件位于/var/qmail/control/helohost
)
2)此文件的主机名应包含有效的DNS条目。
我没有(none)
这就是为什么邮件无法发送的原因。
答案 6 :(得分:0)
我发现我的本地开发服务器突然停止发送电子邮件(使用外部 SMTP)并且在我发现的服务器日志中:
<块引用>拒绝来自 cpc96762-*******.net 的 EHLO [..**.68]:语法上无效的参数:127.0.0.1:8888/app_dev.php< /p>
127.0.0.1:8888/app_dev.php 是我的本地 URL,我使用的是 Docker、Symfony 和 Swift Mailer。
对我来说唯一有帮助的解决方案是添加参数:
local_domain = "localhost"
到我的 Swift Mailer 配置。这解决了所有问题。
查看 Swift Mailer local_domain
选项的文档:https://symfony.com/doc/current/reference/configuration/swiftmailer.html#local-domain