はじめに
結論として、SPFレコードを書かないと迷惑メールで送信されたり、受信されなかったりするから必ず設定しましょう。
SPFレコードはメールの送信元が正しいかどうかを確認する技術です。
正しく設定を行わないと、送信エラーが発生したり、迷惑メールとして送信される可能性があります。
そのため、SPFレコードの設定はメールを送信する上で必須な技術になります。
本記事ではSPFレコードの仕組みや正しい書き方について解説していきます。
SPFレコードとは
概要
SPFレコード(Sender Policy Framework)は、メールの送信元が正規のサーバーから送信したものかを検証するための技術です。
DNSレコードの一つとして設定され、受信側メールサーバーがSPFレコードを確認することで、メールのなりすましや不正送信を防止します。
例えば、SPFレコードを設定していなければ、メールサーバー管理者がメールを送ってもなりすましメールとみなされて送信できなくなります。
重要性
いくつかの理由があります。
- なりすましメールの防止:攻撃者が他人のドメインを偽装して送信するなりすましメールを防ぐ
- 迷惑メール判定の防止:正規のメールでも迷惑メールとして扱われる可能性がある
- メールの信頼性:送信元としての信頼性を高めて、受信されやすくなる
基本的な仕組み
SPFレコードは、DNSのTXTレコードに設定されます。どのサーバーがドメインからメールを送信する権限を持っているかを記述します。
v=spf1 include:_spf.[domain.com] ~all
v=spf1 | SPFレコードのバージョン指定 |
include | 許可するサーバーを指定 |
~all | それ以外のサーバーは許可しない |
流れ
メール送信時に、SPFレコードを設定しておきます。
受信したメールの送信元ドメインを確認し、DNSからSPFレコードを取得します。
SPFレコードが指定されたサーバーが送信元IPアドレスと一致すれば、正規のメールとして送信することができます。
設定例
各自レジストリのDNSレコードを追加する設定にTXTレコードを追加します。
TXTレコードの値に許可したいドメインを記述します。
Gmailのメールサーバーを許可する場合は以下を設定しましょう。
v=spf1 include:_spf.google.com ~all
複数のサーバーを許可する場合は以下を設定しましょう。
v=spf1 ip4:192.0.2.0/24 include:_spf.[ドメイン名] ~all
AWSにおけるSPFレコード
AWS Route53でTXTレコードを設定してコードを記述します。
v=spf1 ip4:192.0.2.0/24 include:_spf.kamelabo.site include:_spf.google.com ~all
SPFレコードが正しく設定されてるかは以下で確認できます。
まとめ
SPFレコードの設定で以下のことを解決することができます。
- なりすましメールの防止
- メールの迷惑メール判定防止
- 送信元の信頼性向上
メールの信頼性を高めるために、SPFレコードの設定は必須です。今回紹介した手順を参考に、必ず設定するようにしましょう。