我有一个邮件服务器“example.com”,它将所有收件人为“me@example.com”的电子邮件转发到“me@gmail.com”。我的邮件服务器运行 Postfix,它使用 virtual_alias_maps 机制来执行转发。我还为“example.com”安装了 SPF 记录:
v=spf1 a include:aspmx.googlemail.com ~all
Run Code Online (Sandbox Code Playgroud)
问题是,每当有人向“me@example.com”发送邮件时,Gmail 都会根据 example.com 的 IP 地址验证 example.com SPF 记录!我认为它应该根据原始发件人的 IP 地址进行验证。
例如,我使用笔记本电脑连接家庭互联网。我按如下方式连接到 example.com 的邮件服务器:
$ telnet example.com 25
20 example.com ESMTP Postfix (Debian/GNU)
HELO my-laptop.local
250 example.com
MAIL FROM:<me@gmail.com>
250 2.1.0 Ok
RCPT TO:<me@example.com>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
From: me@gmail.com
To: me@example.com
Subject: test
test
.
250 2.0.0 Ok: queued as CE5F42200F9
Run Code Online (Sandbox Code Playgroud)
现在,当我在 Gmail 中打开该邮件并查看其来源时,会看到以下标题:
Delivered-To: me@gmail.com
Received: by 10.231.219.195 with SMTP id hv3csp61494ibb;
Sat, …Run Code Online (Sandbox Code Playgroud)