5

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

HELO foo_bar.example.com

回复:

501 Syntactically invalid HELO argument(s)
4

7 回答 7

6

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

于 2008-09-17T19:54:44.820 回答
2

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

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

于 2008-09-17T19:59:07.773 回答
1

在花了这么多时间试图解决这个问题之后,在我的情况下,这个问题只是白手起家,我最终找到了一个解决方案。在我的例子中,只有部署到 Suse 操作系统的系统突然停止发送电子邮件,而不是那些(相同)在 Ubuntu 上运行的系统。在耗尽并消除了此问题的所有建议可能性,甚至考虑更改这些机器的操作系统后,我发现发送电子邮件服务以某种方式对主机的主机名是敏感的。在 Ubuntu 机器中,文件 /etc/hosts 只有以下行:

127.0.0.1 localhost

停止发送电子邮件的 Suse 机器也是如此。从 Suse 机器编辑 /etc/hosts 到

127.0.0.1 localhost proplad

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

于 2016-04-26T11:35:34.897 回答
1

迪亚戈的回答帮助我解决了我一直试图弄清楚的问题。

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

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

127.0.0.1 localhost susetest

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

于 2016-06-21T16:43:18.917 回答
0

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

于 2008-09-18T01:21:59.683 回答
0

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

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

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

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

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

于 2012-01-04T07:40:34.830 回答
0

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

拒绝来自 cpc96762-*******.net [ . .**.68]:语法上无效的参数: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 Mailerlocal_domain选项的文档:https ://symfony.com/doc/current/reference/configuration/swiftmailer.html#local-domain

于 2021-03-09T12:15:10.150 回答