SPF
メールの送信元をチェックする仕組みだよ
DNSサーバにSPFレコードを登録しておくよ
メールを受信したメールサーバがSPFレコードを参照してメールの送信元をチェックするよ
「Sender Policy Framework」の略だよ
簡単に書くよ
SPF(読:エスピーエフ)とは
「このメールアドレス
(メールの世界の宛先情報)のメールは、このメールサーバ
(メールに関する機能を提供してくれるコンピュータ)から送られま~す」とあらかじめ宣言しておくことで、メールの送信元をチェックできるようにする仕組み。
もう少し具体的に書くと
あらかじめDNSサーバ
(IPアドレスとドメイン名の対応を管理するのが仕事のコンピュータ)に「このメールアドレスのメールは、このメールサーバから送られま~す」な情報(SPFレコード)を登録しておいて、メールを受信したメールサーバがそのSPFレコードを参照することで、メールの送信元をチェックできるようにする仕組み
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・メール
・サーバ
・メールサーバ
・SMTPサーバ
について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
メールは「パソコンさんの世界の お手紙機能」です。
話を単純化するために「パソコンさん」と書きましたが、携帯電話やスマホ、その他諸々の媒体でも使えます。
サーバは「サービスや機能を提供する側のコンピュータ」です。
「○○サーバ」と出てきたら「○○関連のサービスを提供しているコンピュータ」と読み替えてみてください。
よく分からない人は、単に「コンピュータ」と読み替えてしまっても かまいません。
それでも雰囲気は感じ取れるはずです。
メールサーバは「メールに関するお仕事をしているサーバ」です。
あなたが書いたメールを相手先に送ったり、あなた宛てに届いたメールを保管しておいてくれたりします。
SMTPサーバは「メールを送るときに使うサーバ」です。
SMTPサーバのイメージは、郵便ポスト、もしくは郵便局のオッチャンです。
あなたが手紙を出すときには、書いた手紙を郵便ポストに入れるか、郵便局のオッチャンに渡しますよね。
それと同じです。
あなたがメールを送るときは、書いたメールをSMTPサーバさんに渡します。
そして、SMTPサーバさんが、あなたのメールを相手に配達してくれます。
……というのがSMTPサーバの大雑把な説明です。
実際には、もう少し あれやこれやが あれやこれやだったりします。
興味がある方は、用語「SMTPサーバ」の説明を ご覧ください
以上を踏まえて
メールの送信元を偽装していないかチェックするための仕組み
のひとつが「SPF」です。
SPFは「送信ドメイン認証」と呼ばれる技術のひとつです。
ちなみに「Sender Policy Framework(センダー・ポリシー・フレームワーク)」の略で「SPF」ね。
気が向いたら、覚えてあげてください。
※「Sender Policy Framework」を何となく日本語にすると「差出人・方針・枠組み」となります。[詳細]
元々、SMTPサーバさんは誰でもウェルカムなサーバさんでした。
誰からのメールでも分け隔てなく送ってくれる優しい奴だったのです。
そんな優しさに悪い人たちが目を付けました。
例えば、送信元を偽って他の人に成りすまして、いたずらメールを送るような輩が登場したのです。
これを放置するのはマズいよね~ということで、技術の進歩と共に、いろいろな対策がなされるようになりました。
悪い人たちに好き勝手やらせないように、いろいろなチェック機能が追加されていったのです。
その「いろいろなチェック機能」のひとつとして生まれたのがSPFです。
SPFではメールを受け取ったサーバでメールの送信元をチェックします。
「おまえ、変な奴じゃない?嘘ついてない?」というのをチェックする仕組みです。
それでは実際にSPFの仕組みを見てみましょう。
ちょっとだけ小難しい話も出てくるので「仕組みなんて興味ないよ」な人は適当に読み飛ばしてください。
あと、SPFの説明ではDNSサーバさんが登場します。
DNSサーバさんが何か分からない方は、そちらから勉強してください。

準備は、よろしいでしょうか。
それでは見ていきましょう。
SPFでは、DNSサーバさんがお仕事で使う資料(ゾーンファイル)に「このメールアドレスのメールは、このメールサーバから送られま~す」という情報をあらかじめ書いておきます。
この登録された情報は「SPFレコード」と呼ばれます。
メールを受け取ったメールサーバさんは、送信元メールアドレスのドメイン(メールアドレスの「@」より後ろの部分)の情報を管理しているDNSサーバさんに問い合わせて、SPFレコードの内容を教えてもらいます。
SPFレコードには「このメールアドレスのメールは、このメールサーバから送られま~す」という情報が書いてあります。
メールを受け取ったメールサーバさんは、SPFレコードの内容と、実際にそのメールを送ってきたメールサーバを比較します。
メールを送ってきたメールサーバがSPFレコードで許可されているサーバさんであれば、メールを受け取ります。
メールを送ってきたメールサーバがSPFレコードで許可されていないサーバさんであれば「こいつ、なんか怪しいな」と判断します。
このように、DNSサーバさんと連携して送信元をチェックする仕組みがSPFです。
SPFの仕組みを実現するには
・DNSサーバにあらかじめSPFレコードが登録されている
・メールを受け取ったメールサーバがSPFレコードをチェックする
の2つが必要です。
せっかくなので、もう少し具体的な例を挙げてみますね。
例えば
「~~@example.com」なメールはピヨ太メールサーバから送られま~す
という情報がSPFレコードとして登録されていたとします。
ここで差出人メールアドレスが
piyo@example.com
のメールがピヨ子メールサーバに届きました。
ピヨ子メールサーバは「example.com」に関する情報を管理しているDNSサーバさんに問い合わせて、SPFレコードの内容を取得します。
取得したSPFレコードの内容を見たら
「~~@example.com」なメールはピヨ太メールサーバから送られま~す
と書いてありました。
ピヨ子メールサーバは、どのメールサーバからメールが送られてきたのかをチェックします。
送り元のメールサーバがピヨ太メールサーバだったら問題ありません。
受け取ります。
送り元のメールサーバがピヨ太メールサーバ以外、例えばアクマメールサーバだったら、それは何かおかしいです。
成りすましと判断します。
これがSPFの仕組みです。
送信元のメールサーバがあらかじめ登録されている奴かをチェックすることで、成りすましを見破ります。
悪い奴が送信元メールアドレスを偽装してきても、送信元のメールサーバが本来のものと違うはずだから見破れるだろうってな理屈です。
一言でまとめるよ
まぁ「SPF」って単語が出てきたら「メールの送信元をチェックする仕組みなんだな~」と お考えください。
おまけ
■訳してみるよ
「SPF」は「Sender Policy Framework(センダー・ポリシー・フレームワーク)」の略です。
「sender(センダー)」は「send(センド)」+「er」です。
「send(センド)」の意味は「送る」とか「届ける」とか「送り出す」とかです。
接尾辞「er」を付けると「~する人」とか「~するもの」的な意味になります。
「policy(ポリシー)」の意味は「方針」とか「指針」とか「やり方」とかです。
「framework(フレームワーク)」の意味は「骨組み」とか「枠組み」とかです。
何となく くっつけると
差出人・方針・枠組み
となります。






