我最近发现 Debian wiki 不建议exim
设置primary_hostname
明确地。据我所知,以下是代码选择primary_hostname
。
基本上,我要么在/etc/hostname
( myhostname.example.com
) 中有 FQDN,要么只myhostname
在 中有一行/etc/hosts
:
ip.add.re.ss myhostname.example.com myhostname
现在,哪个 IP 地址?127.0.0.1
或者是外部 IP 地址?
我认为将 FQDN 指向localhost
是可以的。那么,myhostname
在 中/etc/hostname
,然后在 中/etc/hosts
?
127.0.0.1 myhostname.example.com myhostname localhost
对我来说看起来很有希望:
$ hostname
myhostname
$ hostname -d
example.com
$ hostname --fqdn
myhostname.example.com
除此之外,exim
可能还会使用myhostname.example.com
问候语 ( EHLO
)。这可能会影响电子邮件是否被视为垃圾邮件。或者我必须从myhostname.example.com
而不是发送邮件example.com
?
有人能帮我打破这个循环吗?好吧,这不仅仅是关于exim
。是否有让所有人满意的最佳设置?或者大多数人满意?
答案1
我不确定我是否同意不primary_hostname
明确配置的建议。当然,原则上只在一个地方配置系统的主机名,然后让它渗透到系统的其余部分是一个好主意,但 2019 年发送电子邮件的现实是,您不能只更改传出的 FQDN 并期望一切继续正常工作。理想情况下,您的传出 IP 地址和 HELO 名称的反向 DNS 将相同并始终解析回 IP 地址。因此,在外部 DNS 中为您的域配置正确的 IP 地址至关重要。如果您知道您的服务器将始终能够可靠地访问此外部 DNS,那么就没有理由输入任何内容,/etc/hosts
我会坚持127.0.0.1 localhost
这样做。
对于 Exim,我个人建议明确配置primary_hostname
。此外,我还要提请您注意设置qualify_domain
,其默认值为,primary_hostname
但您可能也希望明确设置为您的域名。
答案2
现在我想起来了,这个建议背后的想法可能是不要更改会影响其他设置的设置。而是更改您想要更改的任何特定设置。想要更改标题From
?更改/etc/mailname
。HELO
主机名?更改helo_data
。这基本上可以归结为:
/etc/exim4/exim4.conf.localmacros
(HELO
主机名):
REMOTE_SMTP_HELO_DATA = mydomain.com
/etc/mailname
(From
标题):
mydomain.com
然后
# update-exim4.conf
# systemctl reload exim4
确认
您可以通过向 port25 发送测试电子邮件来确认它是否有效身份验证检查器:
echo test email | exim [email protected] # replies back
echo test email | exim [email protected] # replies back
echo test email | exim [email protected] \
# replies to [email protected]
在收到的报告中会有一行:
HELO hostname: somedomain.com
或者简单添加-v
选项:
# echo test email | exim -v [email protected]
LOG: MAIN
<= [email protected] U=root P=local S=290
delivering 1hM501-0007Nn-7A
R: dnslookup for [email protected]
T: remote_smtp for [email protected]
Connecting to mail.dst.com [ip.add.re.ss]:25 ... connected
SMTP<< 220 dst.com ESMTP Postfix (Debian/GNU)
SMTP>> EHLO src.com
SMTP<< 250-dst.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
SMTP>> STARTTLS
SMTP<< 220 2.0.0 Ready to start TLS
SMTP>> EHLO src.com
SMTP<< 250-dst.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
SMTP>> MAIL FROM:<[email protected]> SIZE=1322
SMTP>> RCPT TO:<[email protected]>
SMTP>> DATA
SMTP<< 250 2.1.0 Ok
SMTP<< 250 2.1.5 Ok
SMTP<< 354 End data with <CR><LF>.<CR><LF>
SMTP>> writing message and terminating "."
SMTP<< 250 2.0.0 Ok: queued as 0019EEC0B6D
SMTP>> QUIT
LOG: MAIN
=> [email protected] R=dnslookup T=remote_smtp H=mail.dst.com [ip.add.re.ss] X=TLS1.0:RSA_AES_256_CBC_SHA1:32 DN="CN=dst.com"
LOG: MAIN
Completed
或者,您可以检查目标邮箱:
接收者exim
:
Received: from [ip.add.re.ss] (helo=HELO_HOSTNAME)
...
接收者postfix
:
Received: from HELO_HOSTNAME (myhostname [ip.add.re.ss])
...
主机名和/etc/hosts
我相信主机名应该是主机名,而不是 FQDN。
是否将其添加到/etc/hosts
...我宁愿不添加。据我所知,如今的软件并不期望主机名被解析为任何东西。或者它可以被覆盖。(也就是说,除非您在某处使用主机名作为域名。)这意味着只需要这个127.0.0.1
:
127.0.0.1 localhost