当接收服务器进行 HELO 检查时,来自我系统的邮件被拒绝。我相信我的系统发送了错误的域名。我正在运行 exim4。谷歌搜索有关 exim4 和域的任何内容都会产生一个噩梦般的不相关结果列表。同样,谷歌搜索 HELO 拒绝会产生大量需要打开 SMTP 身份验证的 Outlook 用户。我一生都无法弄清楚这个简单的问题:exim 发送的是哪个主机名,我该如何更改它?
不幸的是,我看不到 exim 通过网络发送的内容,所以我无法自己调试。我希望有人遇到过这个问题并且知道:)。
当接收服务器进行 HELO 检查时,来自我系统的邮件被拒绝。我相信我的系统发送了错误的域名。我正在运行 exim4。谷歌搜索有关 exim4 和域的任何内容都会产生一个噩梦般的不相关结果列表。同样,谷歌搜索 HELO 拒绝会产生大量需要打开 SMTP 身份验证的 Outlook 用户。我一生都无法弄清楚这个简单的问题:exim 发送的是哪个主机名,我该如何更改它?
不幸的是,我看不到 exim 通过网络发送的内容,所以我无法自己调试。我希望有人遇到过这个问题并且知道:)。
假设错误是抱怨 HELO/EHLO 数据,您想在 smtp 传输上使用 helo_data 选项。默认值为 $primary_hostname。
手册中提供了更多信息。
如果不是这种情况,您可能希望包含一些示例拒绝消息。只是三位数的代码和之后的字符串。
命令
应该提示您输入要使用的主要主机名。
exim 发送的是哪个主机名?
可以在 exim4 的日志中找到 HELO 名称。停止 exim4 守护进程,然后在启用调试的情况下手动重新启动它:
(该
2>&1|egrep 'HELO|EHLO'
部分是可选的,它只是将 stderr 重定向到 stdout,然后将日志通过管道传输到egrep
,这将过滤除包含 HELO 或 EHLO 的行之外的所有内容)。发送一封电子邮件,应该有以下形式的一两行:
HELO 名称是
foobar.example.com
.还有一些有用的在线检查工具可提供此信息(以及许多有用的其他信息),例如:
我该如何改变它?
与其按照大卫的建议编辑传输文件,我更愿意使用 exim4 常量定义(?)并将名称设置为
/etc/exim4/conf.d/main/00_local_settings
(在拆分配置中),例如:不要忘记运行
update-exim4.conf
之前重新启动exim4。我在 /etc/exim4/exim4.conf.template 中设置了 primary_hostname [...]
正如大卫所说,这可能不是最好的主意。在拆分配置中,您可以通过添加来设置主要主机名
在
/etc/exim4/conf.d/main/00_local_settings
. 似乎它将采用PRIMARY_HOST_NAME
单片 exim4 配置。在 Debian (Lenny) 上,我发现您设置了主机名,
/etc/hostname
但在重新启动之前无法识别。立即设置它(但在重新启动时会丢失,所以你必须做这两个)。
exim4 的报告似乎与 相同
uname -n
,我发现这是一种有用的测试方法。您想要的设置称为primary_hostname。
对于调试,您可以使用
以 ASCII 格式查看 SMTP 流量。