📚

SPFについての覚書

に公開

行いたいこと

  • SPFについての覚書をしていく




SPFとは

  • SPF(Sender Policy Framework)は、メールの送信者が本物かどうかを確認する仕組み。DNSサーバーにメール送信を許可するサーバー情報を登録することで、「なりすましメール」ではないことを証明する。

  • メールマーケティングや業務メールを確実に届けるには、SPFDKIMの両方を適切に設定することが現代では必須です。

  • 大量配信を行う場合は、これらの技術に対応したメール配信サービスの利用を検討することが重要になる。

  • SPFはメール転送(Forward)を行うと送信元IPが変わるため、SPF判定が失敗する場合がある。そのため、SPF だけでは十分ではなく DKIM や DMARC の併用が重要になる。

SPFが重要な理由

  • 設定しないとどうなる?
    ・なりすましメールと判定されやすい
    ・迷惑メールフォルダに入りやすい
    ・最悪、メールが相手に届かない
    ・利用しているIPアドレスの“信頼スコア”が下がる

特にGmail・Yahoo・Outlook(Microsoft)は、
SPF未設定のドメインから送られたメールを非常に厳しく扱われる。

特に注意が必要なケース

・メール配信サービス利用時、クラウド型のメール配信サービスでは、送信元ドメインと実際の配信サーバーが異なるため、SPF設定が必須となる。

SPFだけでは不十分

・メール内容の改ざんを防ぐ技術
SPFDKIM両方を設定することで、メールの信頼性が大幅に向上する
・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が変わるとSPFFailになるため、DKIMDMARCの併用が必須。

  • IP 変更・サービス変更時は必ず更新する
    メール配信システムやサーバーの変更時にSPFを更新し忘れると、到達率が大幅に下がる。

  • DNS TTL の影響を理解する
    レコード変更が反映されるまで時間がかかるため、変更タイミングには注意が必要。

  • 誤った include でのセキュリティリスク
    信頼できないドメインをincludeすると、第三者に送信許可を与えてしまう可能性がある。




以上です。






GitHubで編集を提案

Discussion