当接收服务器进行HELO检查时,来自我系统的邮件将被拒绝。我相信我的系统发送了错误的域名。我正在运行exim4。搜寻有关exim4和域名的任何内容都会产生不相关结果的噩梦清单。同样,谷歌搜索HELO拒绝会产生大量需要打开SMTP身份验证的Outlook用户。我一生无法解决这个简单的问题:exim发送哪个主机名,我该如何更改?
不幸的是,我无法看到通过网络发送的exim,因此我无法自行调试。我希望有人遇到这个问题,只是知道:)。
当接收服务器进行HELO检查时,来自我系统的邮件将被拒绝。我相信我的系统发送了错误的域名。我正在运行exim4。搜寻有关exim4和域名的任何内容都会产生不相关结果的噩梦清单。同样,谷歌搜索HELO拒绝会产生大量需要打开SMTP身份验证的Outlook用户。我一生无法解决这个简单的问题:exim发送哪个主机名,我该如何更改?
不幸的是,我无法看到通过网络发送的exim,因此我无法自行调试。我希望有人遇到这个问题,只是知道:)。
Answers:
假设错误抱怨HELO / EHLO数据,则要在smtp传输上使用helo_data选项。默认值为$ primary_hostname。
remote_smtp:
driver = smtp
helo_data = host.example.com
手册中提供了更多信息。
如果不是这种情况,则可能要包含一些示例拒绝消息。只需三位数代码和其后的字符串。
可以在exim4的日志中找到HELO名称。停止exim4守护程序,然后在启用调试的情况下手动重新启动它:
/usr/sbin/exim4 -bd -d+all 2>&1 | egrep 'HELO|EHLO'
(该2>&1|egrep 'HELO|EHLO'
部分是可选的,它只是将stderr重定向到stdout,然后将日志通过管道传递到egrep
,这将过滤除包含HELO或EHLO的行以外的所有内容)。
发送电子邮件,并且应采用以下形式的一两行:
SMTP>> EHLO foobar.example.com
HELO的名称是foobar.example.com
。
还有一些有用的在线检查工具可以提供此信息(以及许多其他有用的工具),例如:
与其按照David的建议编辑传输文件,不如使用exim4常量定义(?)并将名称设置为/etc/exim4/conf.d/main/00_local_settings
(以拆分配置),例如:
REMOTE_SMTP_HELO_DATA=$sender_address_domain
别忘了update-exim4.conf
在重新启动exim4之前运行。
正如David所提到的,这可能不是最好的主意。在拆分配置中,您可以通过添加以下内容来设置主要主机名
MAIN_HARDCODE_PRIMARY_HOSTNAME = subdomain.example.com
在中/etc/exim4/conf.d/main/00_local_settings
。 看来它将是PRIMARY_HOST_NAME
单片exim4配置。