ポスト

SPF認証に失敗するメールを見たことがありますか?もし見たことがあるのなら、なぜSPF認証が失敗するのかを正確に説明します。Sender Policy Framework(SPF)は、スパムを防ぐために長年使用されてきたメール認証基準の1つです。意識していなかったとしても、Facebookのログインアカウントの設定を確認すると、「友達からのメールのみ受信する」という「オプトイン」が表示されていると思います。これは事実上、SPFと同じことです。

SPF認証とは何ですか?

SPFは、メール送信者がメッセージのFrom:フィールドのドメイン名と一致することを確認するために使用される電子メール認証プロトコルである。送信側のMTAは、DNSを使用して事前に設定されたSPFサーバーのリストに問い合わせ、送信側のIPがそのドメインのメール送信を許可されているかどうかをチェックします。SPFレコードの設定方法に矛盾がある可能性があります。このことは、メールがSPF検証に失敗する理由を理解し、自社のメールマーケティング活動や顧客獲得のためにメールでマーケティングクーポンを送信する際に、問題が発生しないようにするためにどのような役割を果たすことができるかを理解する上で重要です。

SPF認証が失敗する理由 :なし、ニュートラル、ハードフェイル、ソフトフェイル、TempError、PermError

SPF認証の失敗は、以下のような原因で起こります。

  • 受信側のMTAが、お客様のDNSで公開されているSPFレコードを見つけられない
  • 同一ドメインのDNSに複数のSPFレコードが発行されている
  • お客様のSPFレコードで更新されていないESPのIPアドレスが変更または追加されている。
  • SPFのDNS検索回数が10回を超えると
  • 許可されたボイドルックアップの最大数である2を超えると
  • フラット化されたSPFレコードの長さが、SPF文字数制限の255文字を超えています。

上記は、SPF認証が失敗する様々なシナリオです。当社のDMARCアナライザーでドメインを監視し、SPF認証失敗のレポートを得ることができます。DMARCレポートを有効にすると、受信側のMTAは、メールがSPF認証に失敗した理由に応じて、以下のSPF認証失敗結果のいずれかを返します。もっとよく知っておこう。

SPF Fail Qualifiersの種類

SPF Fail qualifiers の種類は以下のとおりで、それぞれ SPF Fail メカニズムの前にプレフィックスとして付加される。

"+" "合格"
"-" "不合格"
"~" "ソフトフェイル"
"?""Neutral(ニュートラル)"

どのような意味があるのでしょうか?SPFに失敗した場合、受信者にどの程度厳しく対応させるかを選択できます。チェックに失敗したメッセージを「通過」させる(配送する)か、「失敗」させるか、「中立」な立場(何もしない)に立つかを指定することができます。

ケース1:SPF Noneの結果が返ってくる場合

最初のケースでは、受信側のメールサーバーがDNSルックアップを実行して、DNSにドメイン名が見つからない場合、noneの結果が返されます。送信者のDNSにSPFレコードが見つからない場合にもnoneが返されます。これは、送信者がこのドメインに対してSPF認証を設定していないことを意味します。この場合、メールのSPF認証は失敗します。

このような事態を避けるために、無料のSPFレコード生成ツールを使って、今すぐエラーのないSPFレコードを生成しましょう。

ケース2:SPF Neutralの結果が返ってくる場合

ドメインのSPFを設定する際に、SPFレコードに ?all メカニズムを付けた場合、送信メールのSPF認証チェックの結論がどうであれ、受信側のMTAはニュートラルな結果を返すことになります。これは、SPFをニュートラルモードにすると、自分に代わってメールを送信することを許可されたIPアドレスを指定せず、許可されていないIPアドレスにもメールを送信させることになるためです。

ケース3:SPF Softfailの結果

SPF softfailは、SPF neutralと同様に、~allメカニズムによって識別されます。これは、受信側のMTAがメールを受け入れ、受信者の受信箱に配信することを意味しますが、DNSにあるSPFレコードにIPアドレスが記載されていない場合は、スパムとしてマークされ、SPF認証がメールに失敗する原因となります。以下にSPFソフトフェイルの例を示します。

 v=spf1 include:spf.google.com ~all

ケース4: SPF Hardfailの結果

SPF hardfailはSPF failとも呼ばれ、受信側のMTAがSPFレコードに記載されていない送信元からのメールを破棄してしまうことです。ドメイン偽装やメールスプーフィングからの保護を受けたい場合は、SPFレコードにSPFハードフェイルを設定することをお勧めします。以下に、SPF hardfailの例を示します。

v=spf1 include:spf.google.com -all

ケース5:SPF TempError(SPF一時エラー

SPF認証が失敗する非常に一般的で無害な理由の1つに、SPF TempError(一時的エラー)があります。これは、SPF認証チェックが受信MTAによって実行されている間に、DNSタイムアウトなどのDNSエラーが原因で発生します。そのため、名前が示すように、通常はSPFの一時的な失敗の原因となる4xxステータスコードを返す一時的なエラーですが、後で再試行するとSPFパスの結果が得られます。

ケース 6:SPF PermError(SPFパーマネントエラー

ドメインエラーが直面するもう一つの一般的な結果はSPF PermErrorです。これは、ほとんどのケースでSPF認証が失敗する理由です。これは、SPFレコードが受信側のMTAによって無効にされた場合に起こります。DNSルックアップの実行中に、MTAによってSPFが壊れて無効になる理由はたくさんあります。

  • 10個のSPF検索の制限を超えること
  • 誤ったSPFレコード構文
  • 同一ドメインに複数のSPFレコードが存在する場合
  • SPFレコードの長さ制限(255文字)を超える場合
  • お客様のSPFレコードがESPによる変更に対応していない場合

注:MTAが電子メールに対してSPFチェックを行う際には、DNSに問い合わせを行うか、DNSルックアップを行って電子メールの送信元の信頼性をチェックします。理想的には、SPFでは最大10回のDNSルックアップが許可されており、これを超えるとSPFが失敗し、PermErrorの結果が返されます。

Dynamic SPF FlatteningはSPF PermErrorをどのように解決するのですか?

他のSPFエラーとは異なり、SPF PermErrorは解決するのが非常に厄介で複雑です。PowerSPFでは、自動的にSPFをフラット化することで、このエラーを簡単に軽減することができます。あなたをサポートします。

  • SPFのハードリミットを下回る
  • SPFレコードを瞬時に最適化
  • レコードを単一のインクルード・ステートメントにフラット化する
  • ESPによる変更に伴い、SPFレコードが常に更新されていることを確認してください。

あなたのドメインにSPFが正しく設定されているかどうかを試してみませんか?今すぐ無料のSPFレコードルックアップツールをお試しください。

自分のドメインに複数のSPFレコードがあってもいいのでしょうか?複数のSPFレコードを持つことは、ドメイン所有者が遭遇する最も一般的なSPFエラーの1つであり、SPFを完全に無効にし、SPF PermErrorにつながる可能性があるからです。なぜこのようなことが起こるのかを理解するためには、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レコードが同一ドメインに複数存在する場合は、SPF PermErrorの結果が返されます。

SPFレコードのマルチインクルード:レコードを公開する方法はどれが正しいですか?

間違った方法です。 

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

この例では、ドメイン exampledomain.com に対して、SPF multiple include を組み込むために、ドメインの DNS で公開されている TXT レコードが、2つ別々に存在します。この場合、SPF認証は失敗し、ドメインに対して永久エラーの結果が返されます。これらのインクルードはそれぞれ別のレコードとして扱われるため、同じドメインに複数のSPFレコードが存在することになります。

 

正しい方法です。 

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

この例では、ドメイン exampledomain.com は、複数のSPFレコードの代わりに、単一のSPF DNS TXTレコードのみを持ちます。これは、SPFの複数のインクルードメカニズムを1つのレコードに追加することで実現されています。このレコードは有効であり、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レコードには、構文エラーが含まれている可能性があります。

複数のSPFレコードやその他の一般的なエラーを回避するために、PowerSPFを使用してSPFレコードを自動的に平坦化し、DNSルックアップの制限を10回以下に抑えることができます。SPFのルールを守っているかどうか知りたいですか?SPFレコードチェッカーを使用して、SPFレコードを無料でチェックできます。

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

SPFフラット化を避けるべき理由

Sender Policy Framework(SPF)は、SPFレコードに登録されているお客様のドメインに登録されているすべての許可されたIPアドレスに対してメッセージを認証することで、広く評価されているメール認証プロトコルです。電子メールを認証するために、SPFは受信側のメールサーバーに許可されたIPを確認するためのDNSクエリを指定し、結果としてDNSルックアップを行います。

SPFレコードは、さまざまなメカニズムの集合体であるDNS TXTレコードとして存在します。これらの仕組みのほとんど(include、a、mx、redirect、exists、ptrなど)はDNSルックアップを生成します。ただし、SPF認証のためのDNSルックアップの最大数は10に制限されています。様々なサードパーティベンダーを利用して、自分のドメインを使ってメールを送信している場合、SPFのハードリミットを簡単に超えてしまいます。

この制限を超えるとどうなるのか、と疑問に思うかもしれません。10回のDNSルックアップの制限を超えると、SPFの失敗につながり、あなたのドメインから送信された正当なメッセージであっても無効になります。このような場合、DMARCモニタリングを有効にしていれば、受信メールサーバーはSPF PermErrorレポートをあなたのドメインに返します。SPFフラット化です。

SPFフラットニングとは?

SPFレコードフラットニングは、SPFレコードを最適化し、SPFハードリミットを超えないようにするために、業界の専門家がよく使う方法のひとつです。SPFフラットニングの手順は非常に簡単です。SPFレコードのフラット化とは、すべてのインクルード機構をそれぞれのIPアドレスに置き換えることで、DNSルックアップの必要性をなくす作業です。

例えば、あなたのSPFレコードが最初は以下のようなものだったとします。

v=spf1 include:spf.domain.com -all

フラット化されたSPFレコードは以下のようになります。

v=spf1 ip4:168.191.1.1 ip6:3a02:8c7:aaca:645::1 -all

このフラット化されたレコードは、複数のルックアップを行う代わりに、1つのDNSルックアップのみを生成します。メール認証時に受信サーバーが実行するDNSクエリの数を減らすことで、DNSルックアップの制限である10回を下回ることができますが、それなりの問題があります。

SPFフラット化の問題点

手動でフラット化したSPFレコードが長すぎてドメインのDNSで公開できない(255文字の制限を超える)という事実の他に、メールサービスプロバイダーがユーザーに通知することなくIPアドレスを変更または追加する可能性があることを考慮しなければなりません。メールサービスプロバイダがインフラを変更しても、その変更はSPFレコードには反映されないことがあります。したがって、これらの変更された、または新しいIPアドレスがメールサーバで使用されるたびに、そのメールは受信者側でSPFに失敗します。

PowerSPF: 動的SPFレコードジェネレータ

PowerDMARCの最終的な目標は、ドメイン所有者が10のDNSルックアップ制限に達するのを防ぐことができるソリューションを考え出すことでした。また、SPFレコードを最適化して、メールサービスプロバイダーが使用している最新のIPアドレスを常に更新することもできます。PowerSPFは、SPFレコードから単一のインクルードステートメントを生成する、自動化されたSPFフラットニングソリューションです。PowerSPFは次のようなことに役立ちます。

  • IPやメカニズムを簡単に追加・削除できる
  • ネットブロックの自動更新により、許可されたIPが常に最新の状態に保たれます。
  • 10個のDNSルックアップ制限を簡単にクリア
  • 最適化されたSPFレコードをワンクリックで取得
  • パーマラー」を永続的に倒す
  • エラーフリーなSPFの実現

PowerDMARCに登録することで、DNSのSPFルックアップの上限を10個に抑えつつ、メールの配信と認証を強化することができます。

この記事では、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の制限に永遠に別れを告げましょう。