Email “我该如何解决?”;501语法无效的HELO参数“;?

Email “我该如何解决?”;501语法无效的HELO参数“;?,email,exim,Email,Exim,我在发送主机和中继主机上使用exim,发送主机似乎提供: HELO foo_bar.example.com 答复: 501 Syntactically invalid HELO argument(s) 主机名中的下划线可能有问题? 下划线在internet主机名中实际上是无效的,尽管有些人使用下划线。一个健全的DNS服务器不应该允许你有他们的记录 更改系统的主机名以使其有效,希望这能解决问题。HELO的参数应为主机名或IP地址。foo_bar.example.com既不是IP地址也不是主机名

我在发送主机和中继主机上使用exim,发送主机似乎提供:

HELO foo_bar.example.com
答复:

501 Syntactically invalid HELO argument(s)

主机名中的下划线可能有问题?
下划线在internet主机名中实际上是无效的,尽管有些人使用下划线。一个健全的DNS服务器不应该允许你有他们的记录


更改系统的主机名以使其有效,希望这能解决问题。

HELO的参数应为主机名或IP地址。foo_bar.example.com既不是IP地址也不是主机名(在主机名中下划线是非法的),因此错误消息是正确的,没有什么需要修复的。

使用qmail时,我遇到了这个问题。我意识到这是因为之前未完成的安装

1) 当发送电子邮件时,qmail会向其他SMTP服务器宣布它自己带有“HELO…”,然后添加文件中的内容:
/var/qmail/control/me

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

2) 此文件的主机名中应包含有效的DNS条目


我的没有它有
(无)
,这就是邮件无法发送的原因。

在花了这么多时间试图解决这个问题后,我的问题从零开始,最后我找到了一个解决方案。在我的例子中,只有部署在Suse OSs上的系统突然停止发送电子邮件,但在Ubuntu上运行的系统(相同)却没有。在用尽并消除了所有关于这个问题的建议,甚至考虑更改这些机器的操作系统之后,我发现发送电子邮件服务对主机的主机名是敏感的。在Ubuntu机器中,/etc/hosts文件只有以下行:

127.0.0.1本地主机

Suse机器也停止了发送电子邮件。将/etc/hosts从Suse机器编辑为

127.0.0.1 localhost proplad


当proplad是机器的主机名时,错误就消失了。似乎某些安全策略(可能来自smtp服务)使用了通过API携带的主机名信息,这在Ubuntu机器中被忽略,但在Suse机器中却没有。希望这能帮助其他人,避免在互联网上花费大量时间进行研究

Diago的回答帮助我解决了我一直试图解决的问题

我们的Suse操作系统也不知从哪里停止了工作。尝试了我在这里和谷歌上找到的每一个建议。什么都没用。尝试将我们的域添加到etc/hosts,但没有帮助

使用hostname命令获取服务器的主机名。按照Digao的建议,将主机名添加到etc/hosts文件中

127.0.0.1 localhost susetest

我保存了更改,然后运行postfix stop,postfix start。现在工作起来很有魅力。

我发现我的本地开发服务器突然停止发送电子邮件(使用外部SMTP),我在服务器日志中发现:

已拒绝cpc96762-******.net[**.68]中的EHLO:语法无效参数:127.0.0.1:8888/app_dev.php

127.0.0.1:8888/app_dev.php是我的本地URL,我使用的是Docker、Symfony和Swift Mailer

在我的案例中,唯一有帮助的解决方案是添加参数:

local_domain = "localhost"
我的Swift邮件配置。这解决了所有的问题


请参阅smtp中继服务器上Swift Mailer
local\u domain
选项的文档:

运行此操作并重新启动exim4 echo'helo\u allow\u chars=\u'>/etc/exim4/conf.d/main/04\u exim4-helo\u hack