Sender Policy Framework record
ゾーンファイルの中身だよ
コメント行だよ
送信元メールサーバの情報が書かれているよ
日本では「SPFレコード」と表現されるのが一般的だよ
簡単に書くよ
Sender Policy Framework record(読:センダー・ポリシー・フレームワーク・レコード)とは
いわゆる「SPFレコード」のこと。
用語の中身としては
「このメールアドレス
(メールの世界の宛先情報)のメールは、このメールサーバ
(メールに関する機能を提供してくれるコンピュータ)から送られま~す」とあらかじめ宣言しておくことでメールの送信元をチェックできるようにする仕組み(SPF)で使うデータ
であり
DNSサーバさん
(IPアドレスとドメイン名の対応を管理するのが仕事のコンピュータ)のお仕事用資料(ゾーンファイル)に書かれた「このメールアドレスのメールは、このメールサーバから送られま~す」な情報のこと
です。
もう少し具体的に書くと
自分の管理している情報を教えてあげるのが仕事のDNSサーバさん(権威DNSサーバ)がお仕事で使うネタ帳(ゾーンファイル)の中身
であり
実際にはただのコメント行(TXTレコード)なんだけど、特別な書き方をすることで「このメールアドレスのメールは、このメールサーバから送られま~す」な情報を表現したもの
です。
詳しく書くよ
最初に留意事項です。
「SPFレコード」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
SPFレコードをアメリカンな表現にしたのが「Sender Policy Framework record」です。
「Sender Policy Framework record」を何となく省略して日本語にしたのが「SPFレコード」ね。
※「Sender Policy Framework」を何となく日本語にすると「差出人・方針・枠組み」となります。[詳細]
以上が「SPFレコード」の意味を知っている人向けの説明です。
「SPFレコードって何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

それでは、いってみましょう。
まずは予備知識として「SPF(Sender Policy Framework)」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
SPF(Sender Policy Framework)は「メールの送信元をチェックする仕組み(のひとつ)」です。
メールを受け取ったメールサーバさんは、送信元メールアドレスのドメイン(メールアドレスの「@」より後ろの部分)の情報を管理しているDNSサーバさんに「このメールアドレスのメールって、どこから送られてくるはず?」と問い合わせをします。
それに対してDNSサーバさんは、お仕事用の資料(ゾーンファイル)を見て「あー、そのメールアドレスのメールは○○メールサーバから送られてくるはずだよ」とお返事します。
メールサーバさんは、その情報をもとにして、受け取ったメールの送信元が○○メールサーバかチェックします。
メールの送信元が○○メールサーバじゃなかったら「なんかおかしいな。なりすましか?」と判断するわけです。
かなり大雑把な説明ですが、これがSPFの仕組みです。
もう少し細かい内容が知りたい人は、用語「SPF」の説明を ご覧ください。
あと
・DNSサーバ
・権威DNSサーバ(DNSコンテンツサーバ)
・ゾーンファイル
が何か分からない方は、できれば先に勉強してきてください。
特にゾーンファイルが何か分からないと、ここから先の話についていくのは難しいです。
以上を踏まえて、本題に入ります。
SPFの仕組みにおいて、DNSサーバさんはゾーンファイルを見て「そのメールアドレスのメールは○○メールサーバから送られてくるはずだよ」とお返事しました。
この話において、DNSサーバさんが見た
ゾーンファイルに書いてある「そのメールアドレスのメールは○○メールサーバから送られてくるはず」な情報(が書いてある場所)
が「Sender Policy Framework record」です。
上でも書きましたが、日本語では「SPFレコード」と表現されます。
※本ページでも以降は「SPFレコード」と表現します。
せっかくなので、もう少し細かい部分まで見てみましょう。
権威DNSサーバ(DNSコンテンツサーバ)と呼ばれるDNSサーバさんは、IPアドレスとドメイン名の対応表を使ってお仕事をしています。
この対応表は「ゾーンファイル」という名前です。
ゾーンファイルの中身の一行一行は「DNSレコード」と言います。
ゾーンファイルの中身のDNSレコードは、いくつかの種類に分類されます。
例えば
ns1.example.com. IN A 198.51.100.2
のように「IN」の後ろに「A」を書いた行は「Aレコード」です。
Aレコードは「○○ドメイン名に対応するIPアドレス(IPv4形式)は××で~す」を表現しています。
DNSレコードには、Aレコード以外にも、SOAレコード、NSレコード、MXレコードなど、いくつかの種類があります。
ところが困ったことにですね。
「SPFレコード」というレコードは ありません。
「どんな情報をDNSレコードで表現する?」を最初に決めたときに「送信元メールサーバを表現しようぜ!」とは ならなかったからです。
そのため、後からSPFレコードを追加……しようと思ったのですが簡単には行きません。
DNSレコードの種類を増やすのは、とっても大変なのです。
世界中のDNSサーバさんの動きを変える必要がありますからね。
本音で言えば、そんなことは、やりたくありません。
そこで、SPFレコードを新しく増やすのは諦めました。
その代わりとして、元々ある「TXTレコード」と呼ばれる、メモ書き用の行を有効活用することにしたのです。
TXTレコードは単純にメモ書きを書いておくための行です。
コンピュータ的には何の意味も持ちません。
例えば
example.com. IN TXT "2021-04-02新規登録↓"
のように書いて、人間様用のメモ書きとして使うのが本来の役割です。
ここに
example.com. IN TXT "この行はSPFレコードです。差出人が「~~@example.com」なメールはピヨ太メールサーバから送られま~す"
と書くことにしました。
先頭に「この行はSPFレコードです。」と書いてあるTXTレコードをSPFレコードとして扱うことに決めたのです。
※これはイメージの話です。実際に「この行はSPFレコードです。」と書くわけでは、ありませんよ。
これで問題は解決ですね。
DNSレコードの種類を増やすことなくSPFレコードを追加できました。
これがSPFレコードの正体です。
「このメールアドレスのメールは、このメールサーバから送られま~す」な情報を表現したTXTレコードです。
SPFレコードの書き方については、ここでは説明しません。
いろいろな書き方ができるので。
参考までに1つだけ例を書いておくと、例えば
IN TXT "v=spf1 ip4:198.51.100.1 ~all"
のような書き方をします。
この例のように書くと「『198.51.100.1』から送られたメールは真っ当に送られたメールだよ。それ以外から送られたメールはインチキだよ」な意味になります。
他にも、あーだこーだと指定の仕方があります。
必要に応じて専門的に解説しているところで情報を補完してください。
一言でまとめるよ
まぁ「Sender Policy Framework record」って単語が出てきたら「SPFレコード
(「このメールアドレスのメールは、このメールサーバから送られま~す」な情報を表現したTXTレコード)のことなんだな~」と お考えください。
おまけ
■訳してみるよ
「sender(センダー)」は「send(センド)」+「er」です。
「send(センド)」の意味は「送る」とか「届ける」とか「送り出す」とかです。
接尾辞「er」を付けると「~する人」とか「~するもの」的な意味になります。
「policy(ポリシー)」の意味は「方針」とか「指針」とか「やり方」とかです。
「framework(フレームワーク)」の意味は「骨組み」とか「枠組み」とかです。
「record(レコード)」の意味は「記録」とか「成績」とか「レコード」とか「記録する」とか「録音する」とかです。
何となく くっつけると
差出人・方針・枠組みの記録
となります。






