SPFレコードとは

SPF(Sender Policy Framework)レコードは、メールを送信する際にドメインからを許可されているメールサーバーかどうかを特定するDNSレコードです。メールの送信元が許可されたサーバーかどうかを判断することで、迷惑メールの防止に役立つというレコードです。

SPFレコードの記述例

このサイト「terakoya.work」のSPF レコードの設定は以下の通りです。さくらインターネットのレンタルサーバーを借りてます。

v=spf1 a:www2334.sakura.ne.jp mx ~all
v=spf1SPFレコードのバージョンです。必須項目なので先頭に必ず記述します。
a:www2334.sakura.ne.jpメールサーバーをドメイン名で承認します。ipv4やipv6でIPアドレスの範囲指定をする場合もあり。
mxメールサーバーをドメインの MX レコードで承認します。
~allSPF レコードに ~all(SoftFail 限定子)が含まれている場合、SPF レコードにない送信元からのメールは受信サーバーで通常は受け入れられますが、不審なメールとして扱われます。

他にもSPF レコードの機構やSPF レコードの限定子があるので、詳しくは「Google Workspace 管理者ヘルプ:SPF レコードについて」を参考に。

SPFレコードを複数設定する方法

ここで本題。例えば、このサイトのSPFレコードに、Google Workspace v=spf1 include:_spf.google.com ~allを追加したい場合で解説。SPFレコードは、DNSのTXTレコードに記述します。

正しい書き方

以下のように設定します。

# 【正】SPFレコードの複数設定
v=spf1 a:www2334.sakura.ne.jp mx include:_spf.google.com ~all

v=spf1は先頭に1つだけにして、末尾の~allも1つにします。3つまではやったことあるんだけど、いくつまで設定できるんだろ?まぁ、そんなに沢山設定することはないだろうけど。

動作しないパターン

よくやりがち(実際に自分もやってしまった)間違い例は、以下の通り

# 【誤】続けて書いてしまって動作しないパターン
v=spf1 a:www2334.sakura.ne.jp mx ~all include:_spf.google.com ~all
# 【誤】TXTレコードを複数設定して動作しないパターン
v=spf1 a:www2334.sakura.ne.jp mx ~all
v=spf1 include:_spf.google.com ~all

2番目の間違いパターンをやってしまって、動かん!と1時間ぐらい悩んだ。

SPFレコードの設定確認

設定が完了したらSPFレコードの設定がうまくいっているかをチェックします。SPFレコードの設定を確認できるサイトがあります。

MX TOOL BOX SPF Records

MX tool box

できた!\(^o^)/
最近、DNS設定をすることがホント増えた。フロントエンジニアのはずなんだけど、改めようかな。

参考サイト

Google Workspace 管理者ヘルプ:SPF レコードについて
https://support.google.com/a/answer/10683907?hl=ja