SPFレコードの記載方法とチェックについて

SPFレコードの記載方法とチェックについて

SPFレコードの記載方法とチェックについて

SPF(TXT)レコードの記載方法

ゾーンファイルへのTXTレコード記載方法です。



例として複数のネットワークアドレスを記載する場合は以下です。

example.com. IN TXT "v=spf1 +ip4:1.1.1.0/24 +ip4:2.2.2.0/24 ~all"

単一の送信メールサーバのIPアドレスを記載する場合は
「v=spf1 +ip4:1.1.1.1 ~all」となります。



SPFレコードのチェックについて


以前はsendmailのサイトでSPFチェックが出来ました。


また、以下のサイトでSPFチェックが出来るようでした。
全て未精査のリンク先です。


今回はメール受信時にSPFチェックが行われるメールサーバに
メール送信してみてメールのヘッダを見ました。
Yahoo!で取得したメールアドレス宛にメール送信してみました。

※以下のいずれもメールを受信し閲覧することは可能でした。
TXTレコードが無い時

Received-SPF: none (sv****.xserver.jp: domain of info@example.com does not designate permitted sender hosts)


正しいTXTレコードが有る時

Received-SPF: pass (sv****.xserver.jp: domain of info@example.com designates 1.1.1.1 as permitted sender) receiver=sv****.xserver.jp; client-ip=1.1.1.1; envelope-from=info@example.com;


TXTレコードに記載した送信メールサーバのIPアドレスが間違っていた時

Received-SPF: softfail (sv****.xserver.jp: domain of transitioning info@example.com does not designate 1.1.1.1 as permitted sender) receiver=sv****.xserver.jp; client-ip=1.1.1.1; envelope-from=info@example.com;


また、インターネット側からの値の確認はdigやnslookupコマンドから行えます。


[user@centos ~]# dig txt example.com

;; ANSWER SECTION:
example.com. 86391 IN TXT "v=spf1 +ip4:1.1.1.1 ~all"


C:\Windows>nslookup
> set q=txt
> example.com

example.com text =


"v=spf1 +ip4:1.1.1.1 ~all"



SPFレコードでしくじったミス

SPF設定をしようと、nslookupでメールサーバのIPアドレスを確認して
Pingを投げて死活確認をしました。


そして軽くSPF設定を終えました。


設定完了後、SPFがPassしないと指摘を受けました。


あれれ??


送信時と受信時で異なるIPアドレスを使っているメールサーバでした。
送信メールのヘッダやファイアウォール機器のNAT設定などをよく見て
設定すべきだったと反省しました。