Postfix

後綴:如何通過 SMTP 強制 IPv4?

  • January 22, 2022

問題

我已經成功地設置了一個帶有 SMTP 介面的 Postfix 郵件伺服器,設置了 DKIM、DMARC、SPF 等等。

但是在測試向 Gmail 發送電子郵件時遇到了問題。

即,如果我通過sendmail伺服器的命令發送 SPF(ARC-Authentication-ResultsGmail 中已傳遞郵件的某些標頭內容),則 SPF 將通過:

spf=pass (google.com: domain of redacted@example.com designates xxx.xxx.xxx.xxx as permitted sender) smtp.mailfrom=redacted@example.com;

xxx.xxx.xxx.xxx伺服器的 IPv4 地址在哪裡

但是如果我使用 SMTP 連接到伺服器並以這種方式發送它會失敗:

spf=fail (google.com: domain of redacted@example.com does not designate yyyy:yyyy:yyyy:yyyy:yyyy:yyyy:yyyy:yyyy as permitted sender) smtp.mailfrom=redacted@example.com;

yyyy:yyyy:yyyy:yyyy:yyyy:yyyy:yyyy:yyyy伺服器的 IPv6 地址在哪裡。

使固定

我意識到 SPF DNS 記錄只是為 IPv4 地址設置的,所以我將它設置為它也適用於 IPv6,它開始傳遞為

spf=pass (google.com: domain of redacted@example.com designates xxx.xxx.xxx.xxx as permitted sender) smtp.mailfrom=redacted@example.com;

xxx.xxx.xxx.xxx伺服器的IPv4地址在哪裡(奇怪)

問題

  1. 通過 SMTP 發送時有沒有辦法強制 IPv4?現在大多數機器都應該處理 IPv6,但如果它在我不想的時候不接觸 IPv6,我會更高興。
  2. 由於 SPF DNS 記錄中不存在 IPv6 而導致它失敗之前怎麼可能,但現在在我添加 IPv6 後它通過 IPv4 傳遞?

如果需要知道任何設置,請告訴我。配置文件有很多行,因此將它們全部發布是不切實際的。

它很簡單postconf -e "inet_protocols = ipv4"

但正如評論中所說,沒有什麼能阻止您通過 ipv6 修復您的 dns/SPF。問候。

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