自分のドメインに複数のSPFレコードを設定できますか?

自分のドメインに複数のSPFレコードがあってもいいのでしょうか?複数のSPFレコードを持つことは、ドメイン所有者が遭遇する最も一般的なSPFエラーの1つであり、SPFを完全に無効にし、SPF PermErrorにつながる可能性があるからです。なぜこのようなことが起こるのかを理解するためには、SPFがどのように機能するのか、なぜ複数のSPFレコードがあると認証に問題が生じるのかを知る必要があります。今すぐSPFレコードチェックを行い、SPFレコード設定のエラーを見つけてください。

SPFの効果は?

Sender Policy Framework (SPF) は、一般的なメール認証プロトコルで、お客様のドメインを代表してメールを送信することが許可されている承認済み送信ソースをすべてリストアップすることで機能します。SPFは、DNSクエリ要求(DNSルックアップ)を実行し、受信MTAがメールのリターンパスアドレスを検索し、ドメインのDNSに存在するSPFレコードに記載されているIPアドレスのリストと照合して検証します。

一致するものが見つかった場合、そのメールはSPFを通過し、そうでない場合はSPFに失敗します。

したがって、SPFを設定するには、「v=spf1」構文で始まるDNS TXTレコードを公開するだけです。

SPF PermErrorとは何ですか?

受信側のMTAがメールのSPF認証を開始すると、「v=spf1」で始まるすべてのDNS TXTレコードを取得します。送信ドメインにSPFが設定されておらず、DNSにSPFレコードが見つからない場合は、Noneという結果が返されます。逆に、「v=spf1」で始まるSPFレコードが同一ドメインに複数存在する場合は、PermErrorが返されます。

間違った方法です。 

レコードタイプドメイン名レコード値TTL
TXTexampledomain.comv=spf1 include:_spf.zoho.com -allデフォルト
TXTexampledomain.comv=spf1 include:_spf.google.com -allデフォルト

この例では、ドメイン「exampledomain.com」に対して、2つの別々のDNS TXTレコードが公開されています。この場合、SPF PermErrorによりSPF認証が失敗します。

 

正しい方法です。 

レコードタイプドメイン名レコード値TTL
TXTexampledomain.comv=spf1 include:_spf.zoho.com include:_spf.google.com -allデフォルト

この例では、ドメイン「exampledomain.com」は、1つのレコードにすべてのインクルード機構を追加することで、1つのSPF DNS TXTレコードのみをDNSで公開しています。このレコードは有効であり、この場合、SPFはPermErrorの結果を返しません。今後SPFレコードエラーが発生しないように、正しい方法でSPFレコードを最適化する方法をご紹介します。

SPFに影響を与えるその他の要因:SPFエラーの種類

前述の通り、複数のSPFレコードを持つことは、SPFレコードを無効にし、SPF認証に失敗する一般的なSPFエラーです。ですから、「自分のドメインに複数のSPFレコードを持つことができますか」に対する答えは、単純明快に「できません」ということになります。あなたのDNSで公開されているSPFレコードが1つだけであることを確認した後でも、SPFエラーを引き起こす他の要因がある可能性があります。

  • また、SPF10ルックアップの制限を超えると、SPF PermErrorが返され、SPFが破損することがあります。
  • SPFレコードを手動でフラット化して、インクルード機構の背後にあるすべてのIPアドレスを検索すると、255文字の文字列制限を超える長大なレコードになることがあります。
  • Zoho、Gmail、Outlookなどのメールサービスプロバイダーは、SPFレコードを無効にするIPアドレスを変更または追加することができます。
  • あなたのSPFレコードには、構文エラーが含まれている可能性があります。

上記のエラーを回避するために、PowerSPFを使用してSPFレコードを自動的にフラット化し、DNSルックアップの制限である10件を下回るようにします。

当社の無料SPFレコード・ジェネレーターを使って、エラーのないSPFレコードを生成することができます。今すぐDMARC Analyzerに登録して、お客様のドメインに正しくSPFを設定し、すべてのSPFエラーを回避してください。