この記事では、SPFレコードを簡単に最適化する方法をご紹介します。企業や中小企業で、顧客やパートナー、従業員との間でメッセージを送受信するためにメールドメインを所有している場合、受信サービスプロバイダーによって設定されたSPFレコードがデフォルトで存在している可能性が高いです。既存のSPFレコードがあっても、新たに作成する必要があっても、SPFレコードがメール配信の問題を起こさないようにするためには、SPFレコードをドメインに合わせて正しく最適化する必要があります。
メール受信者の中には、SPFを厳しく要求する人もいます。つまり、あなたのドメインにSPFレコードが発行されていない場合、あなたのメールは受信者の受信箱でスパムとしてマークされる可能性があるということです。さらに、SPFは、あなたのドメインを代表してメールを送信する未承認のソースを検出するのに役立ちます。
まず、SPFとは何か、なぜ必要なのかを理解しよう。
送信者ポリシーフレームワーク(SPF
SPFは、基本的に標準的な電子メール認証プロトコルであり、あなたのドメインからの電子メール送信を許可されたIPアドレスを指定します。SPFは、特定のドメインのDNSで公開されている送信許可ホストとIPアドレスのリストと送信者アドレスを比較して動作します。
SPFは、DMARC(Domain-based Message Authentication, Reporting and Conformance)と共に、電子メール配信中に偽造された送信者アドレスを検出し、なりすまし攻撃、フィッシング、電子メール詐欺を防止するために設計されています。
ホスティングプロバイダーがお客様のドメインに統合したデフォルトのSPFは、お客様のドメインから送信されるメールがSPFに対して認証されることを保証しますが、お客様のドメインから複数のサードパーティベンダーがメールを送信する場合、この既存のSPFレコードをお客様の要件に合わせて調整・変更する必要があることを知っておくことが重要です。どのようにすればよいのでしょうか?最も一般的な方法を2つご紹介しましょう。
- 新しいSPFレコードの作成
- 既存のSPFレコードの最適化
SPFレコードを最適化する方法の説明
全く新しいSPFレコードの作成
SPFレコードの作成とは、ドメインにSPFを設定するために、ドメインのDNSにTXTレコードを発行することです。これは、SPFレコードを最適化する方法を始める前の必須ステップです。認証を始めたばかりで、構文がよくわからない場合は、無料のオンラインSPFレコードジェネレータを使って、ドメインのSPFレコードを作成することができます。
正しい構文のSPFレコードエントリは以下のようになります。
v=spf1 ip4:38.146.237 include:example.com -all
v=spf1 | 使用しているSPFのバージョンを指定する |
IP4/IP6 | この仕組みでは、ドメインからのメール送信を許可された有効なIPアドレスを指定します。 |
インクルード | 受信側のサーバーに、指定したドメインのSPFレコードの値を含めるように指示する仕組みです。 |
-すべて | この仕組みにより、SPFに準拠していないメールを拒否することができます。これは、SPFレコードを公開する際に使用できる推奨タグです。ただし、SPF Soft Failを意味する~に置き換えることもできます(SPFに準拠していないメールはソフトフェイルとしてマークされますが、それでも受け入れられます)。また、+は、あらゆるサーバーがあなたのドメインに代わってメールを送信することを許可することを指定しますが、これは強く推奨されません。 |
すでにドメインにSPFを設定している場合は、無料のSPFレコードチェッカーを使用してSPFレコードを検索、検証し、問題を検出することもできます。
SPFを設定する際のよくある問題とエラー
1) 10個のDNSルックアップの制限
ドメインの所有者がSPF認証プロトコルを設定・採用する際に直面する最も一般的な問題は、SPFにはDNSルックアップ数に10を超えることができないという制限があることです。複数のサードパーティ・ベンダーに依存しているドメインでは、10回のDNSルックアップ制限が簡単に超過してしまい、SPFが壊れてSPF PermErrorが返されます。このような場合、受信サーバーは自動的にSPFレコードを無効にし、ブロックします。
DNSルックアップを開始するメカニズム。MX、A、INCLUDE、REDIRECT修飾子
2) SPFボイドルックアップ
ボイドルックアップとは、NOERRORレスポンスまたはNXDOMAINレスポンス(ボイドアンサー)を返すDNSルックアップのことです。SPFを実装する際には、DNSルックアップがそもそもボイドアンサーを返さないようにすることが推奨されます。
3) SPF再帰的ループ
このエラーは、指定されたドメインのSPFレコードに、1つ以上のINCLUDE機構の再帰的な問題が含まれていることを示しています。これは、INCLUDEタグで指定されたドメインの1つに、SPFレコードに元のドメインのINCLUDEタグが含まれているドメインが含まれている場合に発生します。これにより、メールサーバがSPFレコードのDNS検索を継続的に行うという終わりのないループが発生します。その結果、最終的にはDNSルックアップの上限である10件を超えてしまい、SPFに失敗するメールが発生します。
4) シンタックスエラー
SPFレコードがドメインのDNSに存在していても、構文エラーがあると意味がありません。SPF TXTレコードにドメイン名や機構名を入力する際に不要なホワイトスペースが含まれていると、受信サーバーが検索を行う際に余分なスペースの前の文字列が完全に無視され、SPFレコードが無効になります。
5) 同一ドメインに対する複数のSPFレコード
1つのドメインがDNSに登録できるSPF TXTエントリは1つだけです。お客様のドメインに複数のSPFレコードがある場合、受信サーバーはすべてのSPFレコードを無効にし、メールがSPFに失敗する原因となります。
6) SPFレコードの長さ
DNSにおけるSPFレコードの最大長は255文字に制限されています。しかし、この制限を超えて、SPF用のTXTレコードに複数の文字列を連結して含めることができますが、DNSのクエリ応答に合わせて512文字の制限を超えることはできません(RFC 4408による)。これは後に修正されましたが、古いバージョンのDNSに依存している受信者は、長大なSPFレコードを含むドメインから送信されたメールを検証することができませんでした。
SPFレコードの最適化
SPFレコードを速やかに修正するために、以下のSPFのベストプラクティスを利用することができます。
- あなたのSPFレコードに、メールソースを左から右に重要度の低い順に入力してみてください。
- 廃止されたメールソースをDNSから削除
- AやMXの代わりにIP4/IP6の仕組みを使う
- INCLUDE機構の数をできるだけ少なくし、ネストしたインクルードを避けます。
- DNSで同一ドメインのSPFレコードを複数発行しないこと
- SPFレコードに余計な空白や構文エラーがないことを確認してください。
SPFの平坦化に関する注記:
SPFフラット化のようなメカニズムを インクルードのような仕組みをIPアドレスの単一リストに変換するSPFフラット化によって、SPFレコードのDNSルックアップ数を大幅に減らすことができます。しかし を常に推奨するわけではありません。なぜなら
- ダイナミック・インフラ:メールサービスプロバイダが送信IPを更新した場合、その都度、フラット化したSPFレコードを手動で更新する必要があり、メンテナンスの手間がかかります。
- レコードの長さ:フラット化すると、SPFレコードが過度に長くなり、DNSクエリの制限を超えてエラーの原因となることがあります。
ソリューション:SPFレコードを平坦化する場合は、自動化された SPFフラット化ツールを使用すると、プロセスを簡素化し、レコードを動的に更新し続けることができます。
PowerSPFで簡単にできるSPFレコードの最適化
SPFレコードを最適化するために、上記のような修正を手動で行うこともできますが、手間をかけずにダイナミックなPowerSPFが自動的にすべての作業を行ってくれます。PowerSPFは、ワンクリックでSPFレコードを最適化することができ、以下のことが可能です。
- 簡単に送信元を追加・削除できる
- DNSを手動で変更することなく、簡単にレコードを更新することができます。
- 最適化された自動SPFレコードをボタン一つで取得
- DNSルックアップ数を常に10件以内に抑える
- PermErrorの緩和に成功しました。
- SPFレコードの構文エラーやコンフィギュレーションの問題を忘れる
- お客様に代わってSPF制限を解決する負担を軽減します
今すぐPowerDMARCに登録して、SPFの制限に永遠に別れを告げましょう。
- 2025年に「SPFレコードが見つかりません」を修正する方法- 2025年1月21日
- MTA-STSとは?正しいMTA STSポリシーを設定する- 2025年1月15日
- DKIMの失敗を修正する方法- 2025年1月9日