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設定などをよく見て
設定すべきだったと反省しました。