Email

為什麼 SPF 是針對我的郵件伺服器的 IP 而不是發件人的 IP 進行驗證的?

  • September 26, 2015

我有一個郵件伺服器“example.com”,它將收件人“me@example.com”的所有電子郵件轉發到“me@gmail.com”。我的郵件伺服器執行 Postfix,它使用 virtual_alias_maps 機制來執行轉發。我還為“example.com”安裝了 SPF 記錄:

v=spf1 a include:aspmx.googlemail.com ~all

問題是,每當有人向“me@example.com”投遞郵件時,Gmail 都會根據 example.com 的 IP 地址驗證 example.com SPF 記錄!我認為它應該針對原始發件人的 IP 地址進行驗證。

例如,我在我的筆記型電腦上通過我的家庭 Internet 連接。我連接到 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

現在,當我在 Gmail 中打開該郵件並查看其來源時,我會看到以下標題:

Delivered-To: me@gmail.com
Received: by 10.231.219.195 with SMTP id hv3csp61494ibb;
       Sat, 14 Jul 2012 02:15:58 -0700 (PDT)
Received: by 10.229.135.5 with SMTP id l5mr2360326qct.5.1342257358291;
       Sat, 14 Jul 2012 02:15:58 -0700 (PDT)
Return-Path: <me@gmail.com>
Received: from example.com [EXAMPLE.COM's IP ADDRESS HERE]
       by mx.google.com with ESMTP id u9si4262071qcv.89.2012.07.14.02.15.58;
       Sat, 14 Jul 2012 02:15:58 -0700 (PDT)
Received-SPF: neutral (google.com: [EXAMPLE.COM's IP ADDRESS HERE] is neither permitted nor denied by domain of me@gmail.com) client-ip=[EXAMPLE.COM's IP ADDRESS HERE];
Authentication-Results: mx.google.com; spf=neutral (google.com: [EXAMPLE.COM's IP ADDRESS HERE] is neither permitted nor denied by domain of me@gmail.com) smtp.mail=me@gmail.com
Date: Sat, 14 Jul 2012 02:15:58 -0700 (PDT)
Message-Id: <500138ce.c995e50a.6e4a.ffffd12aSMTPIN_ADDED@mx.google.com>
Received: from my-laptop.local ([LAPTOP's IP ADDRESS HERE])
   by example.com (Postfix) with SMTP id CE5F42200F9
   for <me@example.com>; Sat, 14 Jul 2012 09:15:44 +0000 (UTC)
From: me@gmail.com
To: me@example.com
Subject: test

正如您在 Received-SPF 和 Authentication-Results 中看到的,正在驗證 SPF 記錄

$$ EXAMPLE.COM’s IP ADDRESS $$代替$$ LAPTOP’s IP ADDRESS $$. 為什麼會發生這種情況,我該如何解決這個問題?

Google

$$ or anyone else $$將根據他們看到的連接到他們的 IP 地址驗證 spf。在這種情況下,它將是您的後綴伺服器的 IP 地址;你無法修復它 - 這是設計使然…. 根據設計,spf 在轉發方面存在“問題”,除非消息被“重新打包”並且發件人地址被重寫到轉發器之一。

引用自:https://serverfault.com/questions/407726