我知道这个问题已经被问过并回答过几次了,但我找不到任何与我的具体问题相关的参考资料。我已经在我的 Debian 7 VPS 上设置了 Postfix 和 Dovecot,我可以发送邮件,但它在我的 gmail 收件箱中显示为垃圾邮件。我发送邮件的域运行一个使用输入“站点联系人”电子邮件地址的 Web 应用程序,并且我在那里输入了我的一个 gmail 电子邮件地址。现在,当我向我的其他 gmail 帐户发送邮件时,它会显示在垃圾邮件中,谷歌给出的理由是,虽然发件人字段显示“原始”电子邮件地址是我的,但它知道它实际上不是来自 gmail 并认为存在欺骗行为。
据我所知,我需要在 DNS 中设置特定的 SPF 记录,以验证我的服务器不会显示为垃圾邮件发件人。我已为 添加了一条记录TXT
,但我的邮件仍然直接进入垃圾邮件文件夹。此外,我了解到 Return-Path 可能是一个问题。就我而言,Return-Path 显示为 Apache2 在其下运行的用户帐户。我是否需要更改它以反映我的 gmail 发件人帐户?@
v=spf1 a:fluidvector.com include:_spf.google.com ~all
我已经进行了一些 SPF 测试并且输出表明 SPF 很好:
SPF record lookup and validation for: fluidvector.com
SPF records are published in DNS as TXT records.
The TXT records found for your domain are:
v=spf1 a:fluidvector.com ~all
Checking to see if there is a valid SPF record.
Found v=spf1 record for fluidvector.com:
v=spf1 a:fluidvector.com include:_spf.google.com ~all
evaluating...
SPF record passed validation test with pySPF (Python SPF library)!
(上述结果是在我将include:_spf.google.com
部分内容添加到我的 SPF 记录后立即给出的)
如何防止使用 Gmail 帐户从我的服务器发送的邮件在另一个 Gmail 帐户中显示为垃圾邮件?我的 Postfix 配置可能有问题吗?
以下是放入垃圾邮件文件夹的原始电子邮件:
Delivered-To: [email protected]
Received: by 10.70.48.208 with SMTP id o16csp66094pdn;
Thu, 10 Jul 2014 13:25:21 -0700 (PDT)
X-Received: by 10.224.135.2 with SMTP id l2mr86728784qat.37.1405023921164;
Thu, 10 Jul 2014 13:25:21 -0700 (PDT)
Return-Path: <[email protected]>
Received: from fluidvector.com ([23.88.121.82])
by mx.google.com with ESMTPS id h39si273921qgd.93.2014.07.10.13.25.20
for <[email protected]>
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
Thu, 10 Jul 2014 13:25:21 -0700 (PDT)
Received-SPF: pass (google.com: domain of [email protected] designates 23.88.121.82 as permitted sender) client-ip=23.88.121.82;
Authentication-Results: mx.google.com;
spf=pass (google.com: domain of [email protected] designates 23.88.121.82 as permitted sender) [email protected];
dmarc=fail (p=NONE dis=NONE) header.from=gmail.com
Received: from localhost (localhost.localdomain [127.0.0.1])
by fluidvector.com (Postfix) with ESMTP id F0AF8914009F
for <[email protected]>; Thu, 10 Jul 2014 20:25:18 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at
Received: from fluidvector.com ([127.0.0.1])
by localhost (fluidvector.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id VUT1YtvYAYKz for <[email protected]>;
Thu, 10 Jul 2014 20:25:14 +0000 (UTC)
Received: by fluidvector.com (Postfix, from userid 33)
id EA69B91400A2; Thu, 10 Jul 2014 20:25:13 +0000 (UTC)
To: =?UTF-8?B?dGVzdA==?= <[email protected]>
Subject: =?UTF-8?B?V2VsY29tZSB0byAiQmVhbnNXb3J0aHki?=
X-PHP-Originating-Script: 1000:messenger.php
From: <[email protected]>
Reply-To: <[email protected]>
Sender: <[email protected]>
MIME-Version: 1.0
Message-ID: <[email protected]>
Date: Thu, 10 Jul 2014 16:25:13 -0400
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: phPULP
X-MimeOLE: phPULP
X-phPULP-Origin: phpulp://beansworthy.fluidvector.com
X-AntiAbuse: Site servername - =?UTF-8?B?YmVhbnN3b3J0aHkuZmx1aWR2ZWN0b3IuY29t?=
X-AntiAbuse: User_id - 1
X-AntiAbuse: Username - =?UTF-8?B?QW5vbnltb3Vz?=
X-AntiAbuse: User IP - 97.82.234.169
我还应该补充一点,最终我将尝试设置 Postfix,以使用我托管的所有 5 个域来发送邮件。这是否意味着我需要为每个域设置单独的“发件人”地址,以避免被标记为垃圾邮件发送者?
任何人若能对此有所阐释,都将不胜感激。
-编辑-:我还注意到邮件似乎在发送之前在我的服务器上被退回了几次。这是正常的吗?
答案1
我发现几个问题:
PTR
记录返回shoplucro2.smtpilimitado.info
未查找的记录23.88.121.82
。它应该返回mail.fluidvector.com
。这强烈表明它是垃圾邮件。- 信封地址和
From:
地址不匹配。如果您不重新发送电子邮件,它们应该匹配。如果您不想要自动回复(正如我对网站的期望),请考虑使用类似“[电子邮件保护]Reply-To:
“。如果您希望人们能够回复,则可以使用标题。 - 从收到的标头来看,您似乎正在对发送的电子邮件进行病毒过滤。虽然这是一个好主意,但您正在重新注入已过滤的邮件,而不是在接受之前将其退回。这可能会导致反向散射垃圾邮件。
Reply-To:
和Sender:
标头都具有与地址相同的数据From:
。虽然我尚未验证这些是否表示垃圾邮件,但它们旨在用于From:
地址未指定发件人或回复地址的情况。我希望您的使用表明垃圾邮件。
您的 SPF 政策非常开放,因此任何人都可以通过您的域名发送邮件。(无论如何都会发生这种情况,因为您采用了 Google 政策。)
除了上述问题之外,我认为您在邮件头中使用 Gmail 地址不会From:
导致您的电子邮件被归类为垃圾邮件。已发布的 Gmail SPF 政策允许这种使用。
您可能需要让您的 IP 地址提供商更新您的PTR
记录。
编辑:此Sender:
字段适用于某人(助理)代表其他人(地址From:
)发送电子邮件的情况。在这种情况下,Sender:
和信封地址应该相同,而From:
地址不同。
此Reply-To:
字段缩进用于回复应发送到与From:
发送电子邮件的地址不同的地址的情况。在极少数情况下,这三个字段可能都适用,每个字段的值都不同。
Sender:
和语义都Reply-To:
适用于许多网站,但大多数情况下代码是消息作者,因此它应该是地址From:
。
允许用户发送其他链接或其他信息的网站会将原始用户的地址放入Reply-To:
地址中。网站可能不感兴趣对此类电子邮件的回复,因此请使用noreply
发送到位存储桶的地址。您可能需要跟踪noreply
数量和原因。您应该有活动的abuse
和postmaster
地址,以便您可以收到滥用和配置问题的通知。
答案2
您无法授权某个域从 gmail 地址发送邮件,只有 Google 可以做到这一点。如果每个人都可以授权自己的服务器发送其他域的电子邮件,那么 SPF 就毫无用处了。垃圾邮件发送者只会授权自己。您需要使用一个源电子邮件地址,其凭据你控制。