我有两个网站托管在同一台服务器上。在设置第一个网站及其对应的电子邮件服务器后,我设置了第二个网站。这更像是一个 DNS 问题。第一台服务器已经长时间无故障运行,其 SPF 记录检查无误,我发送邮件没有任何问题。我使用 apache vhost 设置了第二个 Web 服务器,并使用 iRedAdmin 设置了第二个电子邮件域。问题似乎出在我的 SPF 记录上,每当我从第二个域发送邮件时,它都会被标记为垃圾邮件。我使用原始邮件服务器作为其 MX 进行设置,但我从未在同一个 IP 地址上设置过两个电子邮件服务器,我不确定我是否搞砸了。
以下是两个供参考的 SPF 记录(主机名已混淆):
这很好用:
v=spf1 a mx a:server1.com mx:mail.server1.com ip4:x.x.x.x ~all
这不起作用:
v=spf1 a mx a:server2.com mx:mail.server1.com ip4:x.x.x.x ~all
还有什么想法?就邮件而言,服务器 2 只是服务器 1 的前端。您可以将邮件发送到[电子邮件保护],但它会通过 server1.com 上的 iredmail 服务器进行路由。
任何见解都将不胜感激,因为我需要让我的邮件不再被标记为垃圾邮件。
Received-SPF: neutral (google.com: x.x.x.x is neither permitted nor denied by best guess record for domain of [email protected]) client-ip=x.x.x.x;
好的。我不在乎你们是否知道我的 IP 地址,我只想知道为什么 gmail 会将其发送到垃圾邮件文件夹。根据邮件中的标题,它通过了 SPF 测试等。
Delivered-To: [email protected]
Received: by 10.58.206.18 with SMTP id lk18csp38915vec;
Fri, 22 Feb 2013 11:17:09 -0800 (PST)
X-Received: by 10.68.203.100 with SMTP id kp4mr4779507pbc.186.1361560628737;
Fri, 22 Feb 2013 11:17:08 -0800 (PST)
Return-Path: <[email protected]>
Received: from signtelligence.com ([198.71.84.238])
by mx.google.com with ESMTP id d10si3813292paz.55.2013.02.22.11.17.08;
Fri, 22 Feb 2013 11:17:08 -0800 (PST)
Received-SPF: pass (google.com: domain of [email protected] designates 198.71.84.238 as permitted sender) client-ip=198.71.84.238;
Authentication-Results: mx.google.com;
spf=pass (google.com: domain of [email protected] designates 198.71.84.238 as permitted sender) [email protected]
Received: from localhost (localhost.localdomain [127.0.0.1])
by signtelligence.com (Postfix) with ESMTP id DD33E5362890
for <[email protected]>; Fri, 22 Feb 2013 23:17:07 +0400 (MSK)
X-Virus-Scanned: Debian amavisd-new at signtelligence.com
Received: from signtelligence.com ([127.0.0.1])
by localhost (signtelligence.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id NhgKkX5jwSBC for <[email protected]>;
Fri, 22 Feb 2013 23:17:07 +0400 (MSK)
Received: from claygarland.com (localhost.localdomain [127.0.0.1])
by signtelligence.com (Postfix) with ESMTPA id 76033536288F
for <[email protected]>; Fri, 22 Feb 2013 23:17:06 +0400 (MSK)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8;
format=flowed
Content-Transfer-Encoding: 7bit
Date: Fri, 22 Feb 2013 14:17:06 -0500
From: [email protected]
To: <[email protected]>
Subject: It's been a long time.
Message-ID: <[email protected]>
X-Sender: [email protected]
User-Agent: RoundCube WebMail
Hey. I just wanted to say hello. It's been a long time since we've
talked. My new phone number is (xxx) xxx-xxxx. Give me a ring!
Peace,
Clay
答案1
首先,您的记录中似乎有多余的语法。
我只是猜测,因为我们确实需要正确的域名和 IP 才能确定任何结论。
v=spf1 a mx a:server1.com mx:mail.server1.com ip4:192.168.1.254 ~all
如果上述 SPF 是 server1.com 的 SPF,那么;
v=spf1 a ~all
等同于
v=spf1 a:server1.com ~all
另外,如果 192.168.1.254 是 MX 记录的 A 记录的 IP,那么它也是多余的。
顺便说一句,我希望 192.168.1.254 是一个混淆的 IP...您的 SPF 中不应该列出不可路由的 IP。
因此,假设您使用 server1.com 上的 MX 记录从两个域发送电子邮件,您的 SPF 记录将如下所示;
在server1.com上;
v=spf1 +mx ~all
在server2.com上;
v=spf1 +mx:server1.com ~all
最重要的是,如果两个域具有相同的 MX 记录,那么您可以在两个域上使用相同的 SPF。
在 server1.com 和 server2.com 上
v=spf1 +mx ~all
这+在 mx 前面确保结果是经过而不是中性的结果。特别是因为你正在使用软故障(〜全部)
最后,我建议你阅读OpenSPF 语法文档。
答案2
我认为您误解了 SPF 记录的工作原理。以下是您所拥有的内容的细分。
a:server1.com
:如果发送服务器的IP解析为server1.com,则允许该机器发送邮件。
mx:mail.server1.com
:获取域 mail.server1.com 的 MX 记录。如果其中任何一个(可以有多个)解析为发送服务器的 IP,则允许该机器发送邮件。
ip4:192.168.1.254
:允许此IP为该域名发送邮件。
因此,假设您这里只有一台机器,如果第二个域的 SPF 记录与第一个域相同,它应该可以工作。即
v=spf1 a mx a:server1.com mx:mail.server1.com ip4:192.168.1.254 ~all
但是,你也许能够根据 IP 的解析方式来简化这个过程:
v=spf1 a a:server1.com ip4:192.168.1.254 ~all
另一件要检查的事情是,您是否正确设置了 PTR 记录。无论服务器从哪个 IP 发送,都应该有一个反向查找记录,指向服务器 HELO 本身。
祝你好运!