我已经安装了exim4
,我的/etc/hosts
文件如下所示:
127.0.0.1 localhost
127.0.1.1 mycomputer
192.168.100.5 rpi.mydomain.com
当我运行测试交付能力时,它说:exim -bt [email protected]
R: dnslookup for [email protected]
[email protected] is undeliverable
为什么它不使用该/etc/hosts
文件?
附加信息:
- 系统:Ubuntu。
- 文件中的地址
/etc/hosts
有效。我使用 验证了这一点telnet rpi.mydomain.com 25
。
/etc/nsswitch.conf
:
passwd: compat systemd
group: compat systemd
shadow: compat
gshadow: files
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
答案1
简而言之,电子邮件传送在很大程度上依赖于MX
DNS 系统的记录,并且在/etc/hosts
.
显然,Exim 的测试功能首先考虑 Exim 是否配置为使用智能主机;如果有,它将报告它所知道的智能主机的地址。 (智能主机配置 = 旧sendmail
的电子邮件术语,意思是“不要尝试直接发送到目标地址 - 相反,将所有外发电子邮件发送到一台特定服务器以进行进一步处理。”)
如果未使用智能主机配置,则测试将检查是否MX
存在rpi.mydomain.com
.如果 MX 记录具有以下形式,则它被解释为明确表示“此域没有电子邮件服务”,并且搜索结束:
rpi.mydomain.com. IN MX 0 .
如果 DNS 中没有 MX 记录并且rpi.mydomain.com
在 Exim 配置项中列出mx_domains
,则搜索也会以“邮件无法送达”错误结束。
如果上述尚未终止搜索,Exim 将检查DNS 中的A
或记录。AAAA
在您自己的网络中,如果您希望用作rpi.mydomain.com
邮件服务器,您应该配置本地 Exim 以将其用作智能主机。这是 Exim 文档的相关部分。简而言之,dnslookup
用此 Exim 配置块替换默认邮件路由器配置块:
send_to_smart_host:
driver = manualroute
route_list = !+local_domains rpi.mydomain.com
transport = remote_smtp
这将导致所有目的地不是本地收件箱的邮件/var/mail/<username>
被发送到rpi.mydomain.com
以进行进一步处理。
长期以来,人们一直期望行为良好的邮件服务器具有有效的 DNS 注册,以及与正向 DNS 记录一致的有效反向 DNS 注册。
通常,当邮件服务器收到未经身份验证且不是来自已知可信网络的传入连接时,邮件服务器通常会首先进行反向 DNS 查找以找出尝试连接的系统的名称。然后,它使用该名称进行正向 DNS 查找,并将生成的 IP 地址与连接的实际源 IP 进行比较。如果没有匹配,或者没有反向 DNS 记录,则认为该连接来自可能的垃圾邮件发送者,并且可能会受到更严格的检查或彻底断开连接。这是最古老的反垃圾邮件检查之一。