SPFレコードとは?仕組みや設定方法、正しい書き方も解説します
SPFレコードとは、メールの送信元を確認するための技術の一つです。
メールが送信エラーになるのでSPFレコードを設定したいけれど、SPFレコードとは何なのか?どのような仕組みになっているのか?よくわからないと思っている方も多いのではないでしょうか。
本記事ではSPFレコードの仕組みや設定方法、正しい書き方について詳しく解説していきます。
SPFレコードについて詳しく知りたいと考えている人は、ぜひ本記事の内容を参考にしてください。
またSPFレコードの設定方法についてすぐに知りたい!という方は「SPFレコードの確認・設定方法」をご確認ください。
SPFレコードとは
SPF(Sender Policy Framework)レコードとは、メール送信元のドメイン認証の一つです。
SPFレコードは、メールを送信する際、送信元サーバーとDNS(Domain Name System)上のIPアドレスを比較します。この比較を通じて、メールが正規のサーバーから送信されたものであることを確認できます。
SPFレコードによってメールが正規のサーバーから送られているかを判断できるので、迷惑メールかどうかを選別することができます。
例えば自社から取引先に送信したメールにSPFレコードを設定していなければ、相手側のメールサーバーで迷惑メールと認識されて受信ボックスに届かないことも考えられるでしょう。
メールはビジネスシーンにおいて主要な連絡手段となっているため、「送ったはずのメールが届かない」という問題が発生したらぜひSPFレコードの設定を見直してみてください。
メールが届かない・受信しない原因と解決方法については下記の記事でも詳しく解説しています。
SPFレコードの仕組み
SPFレコードの仕組みについて上記に図解でまとめました。
SPFレコードを設定することで、メールを受信したサーバーは送信元ドメインに紐づくIPアドレスとSPFレコードを照会します。
- 送信元ドメインのIPアドレス
- SPFレコード
上記2つのIPアドレスが一致すれば認証成功です。
送信メールが正しいメールアドレスから送信されたということを証明でき、相手の受信ボックスに届くという流れとなります。
SPFレコードが登録されていなかったり、設定を間違えていると送信メールが相手の迷惑メールフォルダに振り分けられてしまう可能性もあるため注意してください。
SPFレコードの構成要素
- バージョン番号
- 機構(mechanism)
- 限定子
- 修飾子
SPFレコードの構成要素としては上記の4つがあります。
専門的な内容になるので、最初は「SPFレコードは、こんな構成要素でできているんだ。」程度の理解で大丈夫です。
ただSPFレコードがどのような仕組みになっているのかを理解するためには必要な知識のため、それぞれの構成要素について解説していきます。
バージョン番号
SPFレコードの書き始めはバージョン番号から始まります。
原則として、「v=spf1」と記述するため、覚えておきましょう。
「v=spf1.0」などと異なる記載をするとエラーになってしまうので注意してください。
機構(mechanism)
バージョン番号に続いて、機構(mechanism)を記述します。
機構には送信元サーバーの情報が入ります。
各機構は左側に書かれているものから順番に評価され、複数記述することもできます。
下記に一般的な機構(mechanism)についてまとめたので、参考にしてください。
機構 | 意味 |
---|---|
a | ドメイン名を指定する。ドメインのAレコードでIPアドレスが一致すれば認証する。 |
include | ドメイン名を指定する。include先ドメインのSPFレコードで認証処理が通れば認証する。 |
mx | ドメイン名を指定する。ドメインのMXレコードでIPアドレスが一致すれば認証する。 |
ptr | ドメイン名を指定する。サーバーのPTRレコードに指定したAレコードで認証が通れば認証する。 |
all | 常に認証を許可する。SPFレコードの末尾で使うのが一般的 |
ip4、ip6 | IPアドレスを指定する。送信サーバーのIPアドレスが指定したIPアドレスに含まれるなら認証する。 |
限定子
限定子とは照合処理の方法を定義する記述です。
機構によって照合が確認できたときに、どのような処理を行うのかを設定します。
限定子の種類について下記にまとめました。
+ | 正常なメールとして処理する |
---|---|
− | 不正メールとして処理する |
~ | 不正メールとして処理するが、配信はされる |
? | SPF指定なしとして処理される |
修飾子
修飾子を使うことで、SPFレコードにより詳細な情報を示すことが可能です。
0〜2個まで記述可能で、レコードの最後に一度だけ設定できます。
主な修飾子について下記にまとめました。
redirect | 他のドメインに同一の送信を行う |
---|---|
exp | 認証が失敗した場合、指定した文字列をドメインに送信する。 |
SPFレコードの正しい書き方
SPFレコードの基本的な書き方
ドメイン IN TXT 【バージョン番号】【限定子】【機構】【IPアドレス】
SPFレコードの正しい書き方は上記の通り。
ただしこれだけではどのように書けばいいのか分からないと思いますので、記述例を出します。
〇〇.com IN TXT v=spf1 ip4:172.16.0.1 -all
上記の記述例は、
「〇〇.com」のIPアドレス「172.16.0.1」から送信されたメールアドレスのみを認証する
という意味です。
記述例ではIPアドレス「172.16.0.1」から送られたメールのみを認証し、それ以外のメールはすべて拒否するという設定になっています。
実際にSPFレコードを設定する際には、上記の記述例を参考にしてみてください。
また、1つのドメインに複数のSPFレコードを設定できません。
複数のSPFレコードを登録する書き方
2つ以上のSPFレコードが存在すると応答によって順序が入れ替わることがあり、意図とは違う動作が起こる可能性があるためです。
例えば、下記のように複数のSPFレコードを設定したい場合。
example.jp. IN TXT "v=spf1 ip4:172.16.0.1 ~all"
"v=spf1 ip4:172.16.0.2 ~all"
下記のように記述すればエラーは起こりません。
example.jp. IN TXT "v=spf1 ip4:172.16.0.1 ip4:172.16.0.2 ~all"
もし1つのドメインに複数のSPFレコードを設定したい場合には、上記のように1行でまとめるようにしましょう。
SPFレコードが設定されているかを確認する方法
Windows | コマンドプロンプトを開き、「nslookup -type=TXT 調べたいドメイン」を入力してエンターキーをクリックする |
---|---|
Mac | ターミナルを開き、「dig txt 調べたいドメイン」を入力してエンターキーをクリックする |
ドメインにSPFレコードが設定されているかを確認する方法は上記の通り。
コマンドプロンプトやターミナルを使う必要があるので少し難しいですが、上記の方法でSPFレコードを確認することが可能です。
上記の手順で「v=spf1~」という記述がなかった場合、SPFレコードの設定が行われていない可能性が高いです。
また下記のようにブラウザ上でSPFレコードの確認ができるサイトもあります。
次の項目ではSPFレコードの設定方法について解説していきます。
SPFレコードの設定を変更する方法
- 「ドメイン」>「ドメインの設定操作」をクリックする
- 対象ドメイン横にある「DNS/URL」アイコンをクリックする
- 表示された画面に「txt」から始まるSPFレコードがあるのを確認する
- 表示された「txt」から始まるSPFレコード設定を修正する
- 「保存」をクリックして設定完了
ドメイン管理サービスによってSPFレコードの設定方法は異なりますが、今回はバリュードメインを例に解説を行います。
上記の手順に沿って設定を行えば、ドメインのSPFレコード設定変更を行うことが可能です。
まずはバリュードメインの管理画面にログイン後、左メニューの「ドメイン」>「ドメインの設定操作」をクリックしてください。
続いて、SPFレコードを変更したいドメインの横にある「DNS/URL」アイコンをクリックします。
表示された画面に、「txt」から始まるSPFレコードが記述されているのが確認できるでしょう。
表示されたSPFレコードを必要があれば修正していきましょう。
修正後に下スクロールした先にある「保存」ボタンをクリックして設定完了です。
SPFレコードの設定が完了したら、テストメールを送信するなどして正しく設定が反映されているかどうかを確認するようにしましょう。
SPFレコードの設定が反映されるまでにはしばらく時間がかかることがあるため、少し時間を置いてから試してみるのが良いでしょう。
もしメールが届かないなどの不具合が発生するのであれば、再度SPFレコードの設定をやり直すなどの対応をしましょう。
Gmailへのメール配信が届かないときのSPFレコード追加方法は?
Gmailへのメール配信が届かないという問題を抱えているのであれば、SPFレコードを追加する必要があります。
SPFレコードを記述していないと、Gmail側で「このメールアドレスから送信されたメールは認証されていない」と判断されてしまうからです。
2022 年 11 月以降、個人用 Gmail アカウントにメールを送信する新規の送信者は、SPF または DKIM を設定する必要があります。Google では、新規の送信者から個人用 Gmail アカウント宛てのメールをランダムにチェックして、認証されたメールであることを確認します。認証方法が一つも設定されていないメールは、5.7.26 エラーで拒否されるか、迷惑メールに分類されます。
Google Workspace 管理者ヘルプ
Google Workspaceのヘルプページにも上記のような表記があり、SPFレコードを設定していないと迷惑メールに分類される可能性があります。
バリュードメインを例にSPFレコードの確認・設定方法を解説しているので、こちらを参考に設定を行ってみてください。
Gmailが届かない原因や解決方法について、下記で詳しく解説していきます。あわせてご覧ください。
まとめ:迷惑メール対策としてSPFレコードを設定しましょう
ここまでSPFレコードとはどのような仕組みなのか?設定方法や正しい書き方について解説してきました。
SPFレコードとは送信元サーバーとDNS上のIPアドレスを比較し、正規サーバーからの送信であることを示すドメイン認証技術の一つです。
特にGmailアドレスへメールを送信する場合にSPFレコードを設定していないと迷惑メールと認識されてしまうことが多いです。
「送ったはずのメールが相手に届いていない!」と悩んでいる人は、ぜひ本記事の内容を参考にSPFレコードの設定を見直してみてください。
ドメインが実質0円(年間最大3,882円お得)になるサーバーセット割特典、
V2プランが初期費用無料・15%OFF(月額390円→331円)ブラックフライデーセールを展開中です。
最新のキャンペーンはこちらから
ドメイン・サーバー同時契約でドメイン更新費用永久無料(年間最大3,858円お得)
是非、お得なこの機会にご利用ください。最新のキャンペーンはこちらから
GMOデジロック インフラエンジニア
ボケもツッコミも下手な関西人。Windows98で動作するWebサーバーを使用した自宅サーバー構築から初めて、紆余曲折を経て今に至る。
▽登壇実績
https://ct-study.connpass.com/event/55305/
https://gmohoscon.connpass.com/event/102401/