当接收服务器执行HELO检查时,系统中的邮件将被拒绝。 我相信我的系统发送错误的域名。 我正在运行exim4。 谷歌search关于exim4和域名的任何事情都会产生无关结果的噩梦。 同样,使用HELO拒绝search产生一大群需要打开SMTPauthentication的outlook用户。 我不能为我的生活找出这个简单的问题:哪个主机名是exim发送,我该如何改变它?
不幸的是,我看不到有什么exim通过线路发送,所以我无法自己debugging。 我希望有人有这个问题,只知道:)。
假设错误是抱怨HELO / EHLO数据,你想使用smtp传输上的helo_data选项。 缺省值是$ primary_hostname。
remote_smtp: driver = smtp helo_data = host.example.com
更多信息可在手册中find 。
如果情况并非如此,那么您可能希望包含一些示例拒绝消息。 只是三位数的代码和string之后。
命令
sudo dpkg-reconfigure exim4-config
应该提示你input主要的主机名称。
在Debian(Lenny)上,我发现你在/etc/hostname设置了主机/etc/hostname但是直到重新启动后才能识别。
$ hostname newhostname
立即设置(但在重新启动时丢失,所以你必须做的两个)。
exim4好像和uname -n报告一样,我发现这是一个有用的方法来testing。
你想要的设置被称为primary_hostname 。
对于debugging你可以使用
tcpdump -A port 25
以ASCII格式观看SMTPstream量。
可以在exim4的日志中findHELO的名字。 停止exim4守护进程,然后在启用debugging的情况下手动重启:
/usr/sbin/exim4 -bd -d+all 2>&1 | egrep 'HELO|EHLO'
( 2>&1|egrep 'HELO|EHLO'部分是可选的,它只是将stderrredirect到stdout,然后将日志传送到egrep ,这将过滤除HELO或EHLO之外的所有内容。
发送电子邮件,并且应该有一行或两行,格式如下:
SMTP>> EHLO foobar.example.com
HELO的名字是foobar.example.com 。
还有几个有用的在线检查工具可以提供这些信息(以及其他许多有用的信息),例如:
不是像David所build议的那样编辑传输文件,而是使用exim4常量定义(?),并在/etc/exim4/conf.d/main/00_local_settings (分割configuration)中设置名称,例如:
REMOTE_SMTP_HELO_DATA=$sender_address_domain
不要忘记在重启exim4之前运行update-exim4.conf 。
正如大卫所说,这可能不是最好的主意。 在拆分configuration中,您可以通过添加来设置主要主机名
MAIN_HARDCODE_PRIMARY_HOSTNAME = subdomain.example.com
在/etc/exim4/conf.d/main/00_local_settings 。 看来这将是PRIMARY_HOST_NAME在整体exim4configuration。