(我把这个发布在了超级用户上,但我意识到在这里处理可能更好)
我最近在工作中设置了一个开发服务器来测试某些功能。我正在将 exim4 设置为服务器的 MTA。但是,当我测试并向服务器上的帐户发送电子邮件时,即使我有多个条目,它也/etc/aliases
只会发送到其中一个电子邮件地址。
我的文件的条目/etc/aliases
是:
joshua: **@gmail.com, **@apps.gmail.com
下面是 的输出tail /var/log/exim4/mainlog
。我更改了电子邮件地址,但其余数据相同。**@gmail.com
是我的常规 Gmail 帐户,**@apps.gmail.com
是我的工作用的 Google 应用帐户,[email protected]
是服务器的域名。
2013-02-04 02:39:55 1U2Geh-0000aO-LZ DKIM: d=gmail.com s=20120113 c=relaxed/relaxed a=rsa-sha256 [verification succeeded]
2013-02-04 02:39:55 1U2Geh-0000aO-LZ <= **@gmail.com H=mail-wi0-f179.google.com [209.85.212.179] P=esmtp S=1757 id=CAM+SEUAx2UK8cDKe-MO22maib0at4kO=J+tQniEy=rxmPpbgjg@mail.gmail.com
2013-02-04 02:39:56 1U2Geh-0000aO-LZ => **@apps.gmail.com <[email protected]> R=dnslookup T=remote_smtp H=aspmx.l.google.com [2607:f8b0:4002:c04::1b] X=TLS1.2:RSA_ARCFOUR_SHA1:128 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=mx.google.com"
2013-02-04 02:39:56 1U2Geh-0000aO-LZ => **@gmail.com <[email protected]> R=dnslookup T=remote_smtp H=gmail-smtp-in.l.google.com [2607:f8b0:4002:c02::1b] X=TLS1.2:RSA_ARCFOUR_SHA1:128 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=mx.google.com"
2013-02-04 02:39:56 1U2Geh-0000aO-LZ Completed
当我发送测试电子邮件时,它会发送到我的应用程序电子邮件地址,而不是我的 Gmail 地址。
exim4
我认为这可能是无法发送到多个电子邮件地址的问题,因此我更改了/etc/aliases
文件以仅反映我的**@gmail.com
电子邮件地址,但即使文件中没有特定错误,它也发送失败mainlog
。
我还测试了是否可以直接向我的 Gmail 帐户发送电子邮件。我运行了以下命令
echo "Test" | mail -s "Subject" "**@gmail.com"
并且成功了。
基本上,当我向 发送电子邮件时,[email protected]
它会成功发送电子邮件至 ,**@apps.gmail.com
但不会**@gmail.com
。但是,当我直接向 发送电子邮件时,**@gmail.com
它会通过。有什么想法吗?
更新:我乱搞了/etc/sudoers.d
,不小心弄了一个无效文件,sudo
直到我修复它才能工作。我设置了sudo
在发生错误时发送电子邮件。当发生错误时,它会向我发送一封电子邮件,[email protected]
然后向我的电子邮件地址发送一封电子邮件。我通过直接发送电子邮件进行测试,[email protected]
但仍然没有发送到我的电子邮件地址。这是mainlog
2013-02-04 10:13:39 1U2Njn-0000gc-UB <= [email protected] U=joshua P=local S=572
2013-02-04 10:13:40 1U2Njn-0000gc-UB => **@gmail.com <[email protected]> R=dnslookup T=remote_smtp H=gmail-smtp-in.l.google.com [2607:f8b0:4002:c04::1a] X=TLS1.2:RSA_ARCFOUR_SHA1:128 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=mx.google.com"
2013-02-04 10:13:40 1U2Njn-0000gc-UB Completed
2013-02-04 10:23:10 1U2Nt0-0000gz-Kz DKIM: d=gmail.com s=20120113 c=relaxed/relaxed a=rsa-sha256 [verification succeeded]
2013-02-04 10:23:10 1U2Nt0-0000gz-Kz <= **@gmail.com H=mail-we0-f171.google.com [74.125.82.171] P=esmtp S=1737 id=CAM+SEUDYoGWBb1btq_WQ9gRcWbvoSOoBhr2XrA=8QPbCsreLSg@mail.gmail.com
2013-02-04 10:23:11 1U2Nt0-0000gz-Kz => **@gmail.com <[email protected]> R=dnslookup T=remote_smtp H=gmail-smtp-in.l.google.com [2607:f8b0:4002:c04::1b] X=TLS1.2:RSA_ARCFOUR_SHA1:128 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=mx.google.com"
2013-02-04 10:23:11 1U2Nt0-0000gz-Kz Completed
第一个条目是正确发送的电子邮件(当我尝试使用无效的 sudoers.d 文件进行 sudo 时),第二个条目是我发送到的测试电子邮件[email protected]
。
更新 2:当我的 Gmail 帐户成功收到电子邮件时,这些是我收到的标题:
Delivered-To: **@gmail.com
Received: by 10.216.72.209 with SMTP id t59csp48841wed;
Mon, 4 Feb 2013 07:34:59 -0800 (PST)
X-Received: by 10.101.175.18 with SMTP id c18mr7560000anp.3.1359992098647;
Mon, 04 Feb 2013 07:34:58 -0800 (PST)
Return-Path: <[email protected]>
Received: from this.server ([2607:fe50:0:6200:206:5bff:fefc:6123])
by mx.google.com with ESMTPS id i16si8003851anl.12.2013.02.04.07.34.58
(version=TLSv1.2 cipher=RC4-SHA bits=128/128);
Mon, 04 Feb 2013 07:34:58 -0800 (PST)
Received-SPF: neutral (google.com: 2607:fe50:0:6200:206:5bff:fefc:6123 is neither permitted nor denied by best guess record for domain of [email protected]) client-ip=2607:fe50:0:6200:206:5bff:fefc:6123;
Authentication-Results: mx.google.com;
spf=neutral (google.com: 2607:fe50:0:6200:206:5bff:fefc:6123 is neither permitted nor denied by best guess record for domain of [email protected]) [email protected]
Received: from joshua by this.server with local (Exim 4.80)
(envelope-from <[email protected]>)
id 1U2O4i-0000hR-Je
for [email protected]; Mon, 04 Feb 2013 10:35:16 -0500
To: [email protected]
Auto-Submitted: auto-generated
答案1
您的 Exim 日志似乎表明邮件已正确发送到 **gmail.com 地址:
2013-02-04 02:39:56 1U2Geh-0000aO-LZ => **@gmail.com <[email protected]> R=dnslookup T=remote_smtp H=gmail-smtp-in.l.google.com [2607:f8b0:4002:c02::1b] X=TLS1.2:RSA_ARCFOUR_SHA1:128 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=mx.google.com"
你看过进出口拒绝日志中也有这个信息吗?虽然如果主日志没有显示任何故障,那么那里面可能没有任何内容,这一点值得怀疑。
通常在这种情况下,如果邮件日志中没有显示邮件传递失败的迹象,那么在服务器端进行故障排除就非常困难。在这些情况下,几乎总是因为接收服务器出于某种原因丢弃了邮件。我经常在 Gmail 上看到这种情况。我的建议:
- 您是否也检查过 Exim 队列以确保消息确实被发送?
exim -bp
您的域名是否SPF 记录设置?如果没有,我强烈建议您这样做。
你可以检查你的 IP 是否在黑名单上(我喜欢使用MX工具箱)。但是,这并不能保证解决任何问题,因为 Google 并未公开他们使用的黑名单(而且我相信他们保留了私人黑名单)。
Gmail 尤其不总是支持电子邮件转发。另一种方法是,不要让您的别名将电子邮件转发到 Gmail,而是设置该 Gmail 帐户通过 POP 接收电子邮件。您可以按如下方式执行此操作:
Gmail -> Gear -> 设置 -> 帐户 -> 添加您拥有的 POP3 邮件帐户。
抱歉,我不能提供更多信息。我处理过几十次类似的问题,这些是唯一有帮助的方法。如果服务器端没有错误迹象,那么如果您也无法访问接收服务器,就很难找出问题所在。(而且这是谷歌,他们不会提供任何帮助。)
答案2
问题正如 Todd Lyons 在评论中所说:发生这种情况是因为 Gmail 删除了来自同一电子邮件地址的重复邮件。当我发送电子邮件时,它们会直接以我自己的电子邮件形式发送,而当它发回我的 Gmail 时,它被删除了,因为它应该是重复的。