【问题标题】:How do I fix "501 Syntactically invalid HELO argument(s)"?如何修复“501 语法上无效的 HELO 参数”?
【发布时间】:2008-09-17 19:48:29
【问题描述】:

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

HELO foo_bar.example.com

回复:

501 Syntactically invalid HELO argument(s)

【问题讨论】:

    标签: email exim


    【解决方案1】:

    主机名中的下划线可能有问题? http://www.exim.org/lurker/message/20041124.113314.c44c83b2.en.html

    【讨论】:

    • 在 smtp 中继服务器上运行此命令并重新启动 exim4 echo 'helo_allow_chars = _' > /etc/exim4/conf.d/main/04_exim4-helo_hack
    【解决方案2】:

    下划线在互联网主机名中实际上是无效的,尽管有些人仍然使用它们。一个健全的 DNS 服务器不应该让你有他们的记录。

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

    【讨论】:

      【解决方案3】:

      在花了这么多小时试图解决这个问题之后,在我的情况下,这个问题只是从无到有,我最终找到了一个解决方案。在我的例子中,只有部署到 Suse 操作系统的系统突然停止发送电子邮件,而不是那些(相同)在 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 机器上却没有。希望这对其他人有所帮助,避免在互联网上进行大量研究。

      【讨论】:

        【解决方案4】:

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

        我们的 Suse 操作系统也突然停止工作。尝试了我在这里和谷歌上找到的每一个建议。没有任何效果。尝试将我们的域添加到 etc/hosts 但没有帮助。

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

        127.0.0.1 localhost susetest
        

        我保存了更改,然后运行 ​​postfix stop,postfix start。现在就像一个魅力。

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

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

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

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

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

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

            【讨论】:

              【解决方案7】:

              我发现我的本地开发服务器突然停止发送电子邮件(使用外部 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 Mailer 配置。这解决了所有问题。

              请参阅 Swift Mailer local_domain 选项的文档:https://symfony.com/doc/current/reference/configuration/swiftmailer.html#local-domain

              【讨论】:

                猜你喜欢
                • 2016-07-19
                • 1970-01-01
                • 2019-10-23
                • 1970-01-01
                • 1970-01-01
                • 2019-06-24
                • 1970-01-01
                • 1970-01-01
                • 2022-10-18
                相关资源
                最近更新 更多