![Exim 通过另一台服务器发送电子邮件。为什么?](https://linux22.com/image/109933/Exim%20%E9%80%9A%E8%BF%87%E5%8F%A6%E4%B8%80%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%8F%91%E9%80%81%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E3%80%82%E4%B8%BA%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我们的网络服务器使用 Exim4 发送电子邮件,但标头显示该电子邮件来自另一台服务器。下面这些行位于电子邮件标题中。
Exim4.conf 文件中可能有什么内容可以将电子邮件发送到 electric.net?我在配置中没有看到任何可能发生这种情况的地方。我什至不知道 smtp-out4.electric.net 是什么。
我们想直接从服务器发送电子邮件,但我们发现无论是谁设置它似乎都将它们定向到另一个地方。
X-Originating-IP: [192.162.216.194]
Received: from 127.0.0.1 (EHLO smtp-out4.electric.net) (192.162.216.194)
by mta1017.mail.ir2.yahoo.com with SMTPS; Thu, 20 Apr 2017 16:03:43 +0000
Received: from 1d1EYY-0008Hr-TS by out4b.electric.net with emc1-ok (Exim 4.87)
(envelope-from <www-data@[our domain].com>)
id 1d1EYY-0008Lj-Vu
for [recepient]@yahoo.co.uk; Thu, 20 Apr 2017 09:03:42 -0700
Received: by emcmailer; Thu, 20 Apr 2017 09:03:42 -0700
Received: from [our IP] (helo=mail3.[our domain])
by out4b.electric.net with esmtps (TLSv1.2:DHE-RSA-AES128-SHA:128)
(Exim 4.87)
(envelope-from <www-data@mail3.[our domain]>)
id 1d1EYY-0008Hr-TS
for [recipient]@yahoo.co.uk; Thu, 20 Apr 2017 09:03:42 -0700
答案1
Exim 有一种内置方法可以解决此类问题:地址测试模式。
$ /usr/sbin/exim4 -bt [email protected]
R: domain_literal for [email protected]
R: dnslookup_secure for [email protected]
[email protected]
router = dnslookup_secure, transport = remote_smtp_secure
host gmail-smtp-in.l.google.com [2607:f8b0:400d:c0d::1a] MX=5
host gmail-smtp-in.l.google.com [209.85.232.26] MX=5
⋮
这两R:
行告诉我们它正在尝试哪些路由器,第二行在我的配置中强制将邮件发送到某些常见的启用 TLS 的域(例如 gmail.com),以便通过 TLS 发送。
另一个例子,在另一台机器上:
$ /usr/sbin/exim4 -bt [email protected]
R: smarthost for [email protected]
[email protected]
router = smarthost, transport = remote_smtp_smarthost
host einstein.home [192.168.65.24]
这台机器设置为使用智能主机来处理所有外发邮件。您可以看到它正在使用smarthost
路由器,并通过 smarthost 进行路由einstein.home
。
您可能需要以特权用户身份运行地址测试。我的设置中不需要。
答案2
您的邮件服务器可能配置为使用智能主机。
在 exim.conf 中查找:
transport = remote_smtp
route_list = * REMOTEHOST
其中 REMOTEHOST 是主机名或 IP 地址
如果它是一个 ip 地址,请执行反向查找在上面。如果它位于“electric.net”下,那就有答案。
另外,检查您自己的主机名,看看您的 ISP 是否通过 DHCP 使用 electric.net 下的域配置其中之一:
hostname -A
答案3
您的域策略允许发送服务器吗?不应允许您的 Web 服务器直接发送邮件,如果这样做,则可能会出现递送问题。
您可能已将 Exim4 设置为使用智能邮件程序来发送电子邮件。这是您的 Web 服务器的正确设置,该服务器应通过您的 MTA(邮件传输代理)(通常是您的 MX(邮件交换)服务器)传送邮件。该服务器将具有正确的 DNS 条目,以确保您的邮件可能被送达而不是发送到垃圾邮件桶。这些 DNS 条目包括:
- 正确的 PTR 记录以确保 rDNS(反向 DNS)验证成功。 (必需的)
- 发送域的 SPF 记录以及邮件服务器 DNS 名称。 (受到推崇的)
- 用于签署外发邮件的 DKIM 记录和配置。 (推荐,但往往执行不力。)
- DMARC 记录允许接收服务器应用您的域 SPF 和 DKIM 策略(推荐,但较小容量的服务器不经常使用。)