我正在尝试向其发送邮件的某个远程 SMTP 服务器拒绝接受来自我的服务器的 HELO:
504 5.5.2 <localhost>: Helo command rejected: need fully-qualified hostname
显然,我的 Exim4 服务器localhost
作为其 FQDN 发送。搜索网络和一堆配置文件,我了解到在 HELO 期间作为 FQDN 发送的值是从primary_hostname
配置变量中提取的。
我的问题是:在 Debian 系统中更改此变量的正确方法是什么?我想我可以简单地在 Exim4 配置文件中硬编码一个值,但恕我直言,如果该值自动对应于/etc/mailname
或其他一些集中名称配置,它似乎更有意义。
我感觉我的问题的答案可以在Debian wiki的这篇文章中找到:
Exim 在 EHLO/HELO 中使用的名称是从配置选项中提取的
primary_hostname
。Debian 的 exim4 默认配置没有设置primary_hostname
. Exim 然后默认使用 uname() 来查找主机名。如果该调用仅返回一个组件,则使用 gethostbyname() 或 getipnodebyname() 来获取完全限定的主机名。如果您的 Exim HELO 为 localhost.localdomain,那么您很可能有一个由某些版本的 Debian 安装程序创建的错误配置的 /etc/hosts。在这种情况下,请修复您的 /etc/hosts。
不幸的是,我对 Linux 服务器管理不够熟悉,无法确切知道这一切意味着什么:(