ポスト

この記事では、SPFレコードを簡単に最適化する方法をご紹介します。企業や中小企業で、顧客やパートナー、従業員との間でメッセージを送受信するためにメールドメインを所有している場合、受信サービスプロバイダーによって設定された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レコードを毎回変更しなければなりません。

PowerSPFで簡単にできるSPFレコードの最適化

SPFレコードを最適化するために、上記のような修正を手動で行うこともできますが、手間をかけずにダイナミックなPowerSPFが自動的にすべての作業を行ってくれます。PowerSPFは、ワンクリックでSPFレコードを最適化することができ、以下のことが可能です。

  • 簡単に送信元を追加・削除できる
  • DNSを手動で変更することなく、簡単にレコードを更新することができます。
  • 最適化された自動SPFレコードをボタン一つで取得
  • DNSルックアップ数を常に10件以内に抑える
  • PermErrorの緩和に成功しました。
  • SPFレコードの構文エラーや設定の問題を解消
  • お客様に代わってSPF制限を解決する負担を軽減します

今すぐPowerDMARC登録して、SPFの制限に永遠に別れを告げましょう。