SPFについての覚書
行いたいこと
- SPFについての覚書をしていく
SPFとは
-
SPF(Sender Policy Framework)は、メールの送信者が本物かどうかを確認する仕組み。DNSサーバーにメール送信を許可するサーバー情報を登録することで、「なりすましメール」ではないことを証明する。 -
メールマーケティングや業務メールを確実に届けるには、
SPFとDKIMの両方を適切に設定することが現代では必須です。 -
大量配信を行う場合は、これらの技術に対応したメール配信サービスの利用を検討することが重要になる。
-
SPFはメール転送(Forward)を行うと送信元IPが変わるため、SPF判定が失敗する場合がある。そのため、SPF だけでは十分ではなく DKIM や DMARC の併用が重要になる。
SPFが重要な理由
- 設定しないとどうなる?
・なりすましメールと判定されやすい
・迷惑メールフォルダに入りやすい
・最悪、メールが相手に届かない
・利用しているIPアドレスの“信頼スコア”が下がる
特にGmail・Yahoo・Outlook(Microsoft)は、
SPF未設定のドメインから送られたメールを非常に厳しく扱われる。
特に注意が必要なケース
・メール配信サービス利用時、クラウド型のメール配信サービスでは、送信元ドメインと実際の配信サーバーが異なるため、SPF設定が必須となる。
SPFだけでは不十分
・メール内容の改ざんを防ぐ技術
・SPFとDKIM両方を設定することで、メールの信頼性が大幅に向上する
・Gmailでは2024年2月から、大量送信者(1日5,000件以上)にSPF・DKIM・DMARCの設定を義務化
実践的な対応策
・SPF・DKIM両方に対応したサービスを選ぶ
・専門的な設定や管理をサービス側に任せられる
・高い到達率と安定した配信が期待できる
SPFの評価ロジック(仕組み)
・メール受信サーバーは送信元 IP を参照
・ドメインの SPF レコードと照合
・合致すれば OK、違えば SoftFail など
SPFレコードの具体例
[例]
v=spf1 include:spf.protection.outlook.com ~all
それぞれの記述の意味(include / ip4 / a / mx / ~all / -all)
v=spf1 = SPF のバージョン
include: = 別ドメインの SPF 設定を参照する
ip4: = 許可する IPv4 アドレス
a / mx = A レコード・MX レコードの IP を許可する
~all = SoftFail(推奨。まずはこれで運用開始)
-all = Fail(完全に許可する送信元を固定したいとき)
使用する時の注意点
-
include の多用は避ける
過剰にincludeを使うとSPFレコードの参照回数(DNS Lookup)が10回を超え、SPFが正しく機能しない。 -
SPFレコードは1つにまとめる
複数定義するとエラーになるため、すべての設定は1行のレコードに統合する必要がある。 -
~all と -all の扱いに注意
いきなり-all(Fail)にすると正当なメールまで拒否される場合がある。
基本は~allで運用し、状況が固まってから-allに移行する。 -
Forward(転送)環境での SPF 破綻に注意
転送先で送信元IPが変わるとSPFがFailになるため、DKIMやDMARCの併用が必須。 -
IP 変更・サービス変更時は必ず更新する
メール配信システムやサーバーの変更時にSPFを更新し忘れると、到達率が大幅に下がる。 -
DNS TTL の影響を理解する
レコード変更が反映されるまで時間がかかるため、変更タイミングには注意が必要。 -
誤った include でのセキュリティリスク
信頼できないドメインをincludeすると、第三者に送信許可を与えてしまう可能性がある。
以上です。
Discussion