Gmail 未通过基于客户端 IP 的 SPF 检查。这些是相关的标题:
Received-SPF: fail (google.com: domain of johndoe@example.com does not designate 164.77.240.58 as permitted sender) client-ip=164.77.240.58;
Received: from johndoe (unknown [164.77.240.58])
by mail.example.com (Postfix) with ESMTP id 993643FE2D
Run Code Online (Sandbox Code Playgroud)
客户端IP(164.77.240.58)是johndoe电脑的IP。发件人 IP,即 mail.example.com 的 IP,包含在 SPF 记录中。
为什么 Gmail 会根据客户端 IP 而不是发件人 IP 失败?这是 SPF 应该如何工作吗?
我们有一个带有域的 linux (Debian) VPS(假设 example.com 和 MX mail.example.com)设置了 SPF。dovecot+exim 正在运行。除此之外还有直接管理员。
当我向外国服务器发送邮件时,一切都很好。消息中有服务器 IP,SPF 检查正常。
一些数据发生了变化(域等):
Received: from mail.example.com (mail.example.com. [188.40.153.39])
by mx.google.com with ESMTPS id ***.7.2015.02.18.04.09.46
for <*@gmail.com>
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
Wed, 18 Feb 2015 04:09:47 -0800 (PST)
Received-SPF: pass (google.com: domain of test@example.com designates 188.40.153.39 as permitted sender) client-ip=188.40.153.39;
Run Code Online (Sandbox Code Playgroud)
但是,当我将它从本地邮箱发送到另一个本地邮箱,然后通过 POP3 将邮件发送到 gmail 时,我遇到了 SPF 问题,因为邮件包含原始客户端 IP 地址并且 SPF 检查失败。
Authentication-Results: mx.google.com;
spf=fail (google.com: domain of test@example.com does not designate 82.160.100.10 as permitted sender) smtp.mail=test@example.com
Received-SPF: fail (google.com: domain of …Run Code Online (Sandbox Code Playgroud)