SPFとは
SPF(Sender Policy Framework)とは、メールの送信元が本物かどうかを確認するためのDNS設定です。「このドメインからメールを送っていいサーバーはこれだけですよ」と宣言する仕組みです。
例えるなら、会社の受付に「この名刺を持っている人だけが正社員です」というリストを置くようなものです。リストに載っていない人が会社名を騙っても、受付で見破ることができます。
なりすましメールの脅威
実は、メールの送信元アドレスは簡単に偽装できます。技術的には、誰でも他人のアドレスを名乗ってメールを送ることが可能です。
なりすましメールによる被害例:
- フィッシング:銀行やサービスを装い、ログイン情報を盗む
- ビジネスメール詐欺:取引先の社員になりすまし、偽の振込先を指示する
- スパム:あなたのドメインが迷惑メールの発信元として悪用される
- ブランド毀損:顧客が「あの会社から怪しいメールが来た」と不信感を抱く
SPFを設定することで、受信側のメールサーバーが「このメールは本当にそのドメインから送られたものか」を検証できるようになります。
SPFレコードの書き方
SPFレコードはDNSのTXTレコードとして設定します。基本的な書き方:
v=spf1 ip4:203.0.113.1 include:_spf.google.com ~all
各部分の意味:
v=spf1:SPFのバージョン宣言(必須)ip4:203.0.113.1:このIPアドレスからの送信を許可include:_spf.google.com:Google Workspace経由の送信を許可~all:上記以外のサーバーからの送信はソフトフェイル(疑わしいと判定)
allの前につける記号の意味:
+all:すべて許可(意味がないので使わない)~all:ソフトフェイル(許可リスト外は疑わしいが受信する)-all:ハードフェイル(許可リスト外は拒否)?all:ニュートラル(判定しない)
SPFレコードの確認方法
設定したSPFレコードが正しく反映されているか、以下の方法で確認できます:
- コマンドライン:
nslookup -type=txt example.comまたはdig txt example.com - オンラインツール:MXToolbox、Google Admin Toolboxなどの無料ツール
- テストメール送信:Gmailにメールを送り、受信メールの「メッセージのソースを表示」でSPFの判定結果を確認
よくあるミス
- DNSルックアップの上限超過:SPFレコード内の
includeは再帰的に展開され、合計10回のDNSルックアップまでという制限があります。超えると検証が失敗します - 複数のSPFレコード:1つのドメインにSPFレコードは1つだけ。複数あるとエラーになります
- メール配信サービスの追加忘れ:MailchimpやSendGridなどのサービスを使う場合、それらのSPFも
includeに含める必要があります +allの設定:すべてのサーバーを許可してしまい、SPFの意味がなくなります