ドメインの複数のSPFレコードを修正する必要がありますか?
SPFレコードは TXT
で始まるタイプのレコード v=spf1
.複数のSPFレコードがあると、メールが拒否されたり、スパムとしてファイルされたりする可能性があります。
その簡単な方法をお教えしましょう。
この記事で
SPFレコードが1つ以上ある場合はどうなりますか?
1つのドメインに対して複数の別々のSPFレコードを持っている場合、メールはSPF認証に失敗し、PermErrorを返します。
Alexaによると、SPFレコードを持つドメインの6つに1つは間違ったフォーマットを使用している。
SPFレコードが無効であることに気づいていないかもしれません。SPFレコードが2つ以上ある場合、それらはすべて無視されることが多く、メール配信に悪影響を及ぼします。
簡単な方法は、これらの複数のTXTレコードを1行にまとめることです。これは簡単に解決できる問題で、SPFレコードを結合するのに数分しかかかりません。
複数のSPFレコードを修正する方法
まずは、無料のオンラインツールでDNSレコードをチェックします。
複数のSPFレコードをチェックする
まずは、MXToolboxという無料のツールを使って、DNSレコードに1つ以上のSPFレコードがないかスキャンしてみましょう。
これを行うには、フィールドにドメイン名を入力し、SPFレコード検索ボタンをクリックします。
複数のSPFルールを設定している場合、「More than one record found」というメッセージが表示されます。SPFレコードは上部の赤いバーで表示されます。
ご覧のように、2行が次のように始まっている。 v=spf1
これがエラーになる理由です。受信メールサーバーはどちらのルールに従うべきかわからないので、両方を無視します。
SPFレコードの問題を解決するには、ドメインのDNSレコードを編集し、複数のSPF TXTレコードを1つにまとめます。
DNSをホストしている会社のコントロールパネルを開く必要があります。ほとんどの場合、DNSレコードは以下の会社によって保持されています:
- ドメインレジストラ(ドメイン名を購入した会社)
- ホスティングとドメインをパッケージで購入した場合、使用しているウェブホスティング会社
- CDNを使用する場合は、CDNプロバイダー。Cloudflareはその一例です。
DMARC、SPF、DKIMレコードをトランザクションメールプロバイダーに作成した際に、すでにDNSを編集したかもしれません。SPFレコードのマージができるように、そのプロセスについて説明します。
例1:CloudflareのSPFレコード
各プロバイダーのコントロールパネルの外観は若干異なります。
まずはCloudflareを使って複数のSPFレコードを修正する方法をご紹介します。まず、ログインして編集したいドメインを選択します。
DNS全体が表示されます。重複を見つけるためにTXTレコードを探してください。
もしあなたのDNSがこのように見えないなら、正しいレコードを見つける別の方法を試してみよう。
例2:BluehostのSPFレコード
BluehostはcPanelを使用しているので、同様のホストを使用している場合は、この例に従うのは簡単です。
まず、ホスティングコントロールパネルにログインします。左側のメニューから「ドメイン」をクリックします。
リストから、編集するドメインの横にある[管理]ドロップダウンをクリックします。
出てきたメニューから、DNSをクリックする。
次に、TXTレコードが見つかるまで下にスクロールします。このセクションにSPFレコードがあります。
繰り返しますが、DNSレコードは別の形式でレイアウトされている可能性がありますが、ほとんどのcPanelホストは、色(スキン)が異なる同様のメニューを持っています。あなたのホスティングアカウントの外観が若干異なっていても、上記のスクリーンショットは、それらを見つけるのに役立つはずです。そうでない場合は、ホストに連絡してください。
1つのTXTレコードに複数のSPFレコードを含める方法
では、正しい構文を使用して、すべてのSPFレコードを1つのTXTエントリに統合します。これにより、1つのレコードで複数のIPまたはドメインを使用できるようになり、先ほどのエラーが解決されます。
この例ではCloudflareを使用しますが、ほとんどのホストとレジストラで手順は同様です。
DNSゾーンを見て、最初のSPFルールを見つける。Editをクリックする。
既存のルールをデスクトップ上の空白のテキスト文書にコピーし、すぐにまた取り出せるようにする。
そのレコードをDNSから削除する。
Bluehostでは、3つのドットの右側のアイコンを使用してレコードを削除することができますし、[削除]をクリックします。
デモを簡単にするため、この手順の残りはCloudflareに戻します。
2番目のSPFレコードの横にあるEditをクリックする。
ここで、テキストファイルのSPFレコードをこのレコードにマージする。
SPFレコードには3つのセクションがあります:宣言、許可されたIPまたはドメイン、そして実施ルールです。レコードをこのように組み合わせる:
- 宣言:SPFレコードを
v=spf1
(これはルール内で二度と使わないでください。) - アロウィン:を追加する。
include
このように各ドメインを検索する:include:zoho.eu include:mailgun.org
- 施行規則:記録を1つで終える
~all
ステートメント(これもルールの最後にのみ使用し、1度だけ追加すること)
SPFルールを結合すると、結合レコードは次のようになる:
v=spf1 include:zoho.eu include:mailgun.org ~all
SPFレコードを保存してください。
最初に1つだけ宣言し、最後に1つだけ実施規則を書けば、必要であればそれ以上のドメインを含めることができる。ただ、必ず1行にまとめてください。以下に例を示す:
v=spf1 include:zoho.eu include:spf.brevo.com include:mailgun.org ~all
記録を伸ばし続けることは可能だが、いくつかの限界があることを覚えておいてほしい:
- ステートメントは最大10個のドメイン・ルックアップを持つことができる(例えば
include
) - ステートメントの長さは255文字以下でなければならない。
次に進む前に保存することをお忘れなく。
マージしたSPFレコードをテストする
DNSの変更が反映されるまでに最大48時間かかることがありますが、Cloudflareの変更は数分で反映されることがよくあります。
しばらく待ってから、MXToolboxでドメイン名をもう一度確認してください。
このようなパスメッセージが表示されるはずです。
これで完了です!これで、あなたのドメインの複数のSPFレコードの問題を解決することができました。
それでもエラーが表示される場合は?
それでも次のようなエラーが表示される場合は too many lookups
SPFレコードの各ドメインに対して複数のルックアップが行われている可能性があります。言い換えると、すべてのドメインはそれぞれ include
ステートメントがあり、その合計が許容される最大数を超えている。
SPFレコードをフラットにすることで解決できます。
SPFレコードに関するよくある質問
最後に、SPFレコードの背景についてもう少し説明しよう。
SPFとは何か?
SPFとは、Sender Policy Frameworkの略である。完全な仕様はRFC4408という技術文書で定義されている。
SPFレコードは何をするのか?
SPFは、ドメイン・スプーフィングを防ぐために、送信メール・メッセージを検証します。ドメインスプーフィングとは、フィッシングメールやマルウェアメールを送信する際に、スパマーがあなたになりすますことです。
受信サーバーは、あなたからのメールを受け取ると、送信者ドメインをSPFレコードと照合します。SPFチェックに失敗した場合、受信サーバーはそのメールをスパムとしてマークするか、拒否します。
ドメインごとにいくつSPFレコードを持つことができますか?
各ドメインに最大1レコードまで設定できます。サブドメインには独自のレコードが必要です。
WordPressのメールにSPFは必要か?
そうです。メールプロバイダーは、有効な認証(SPF、DMARC、DKIM)を持たないメールをブロックし始めている。グーグルはすでにGmailアドレスへのメールをブロックしており、ヤフーも同様のルールを導入している。
デフォルトでは、WordPressはメールに認証を追加しないため、メールがブロックされてしまいます。WP Mail SMTPのようなSMTPプラグインをインストールし、一致するSPFレコードを作成すれば、この問題は発生しません。
SPF は WP Mail SMTP のすべてのメーラーに必要ですか?
ほとんどの場合必要ですが、すべてではありません。SPFは使用する場合に必要です:
- SMTP.com
- ブレヴォ
- メールガン
- センドグリッド
- グーグル・ワークスペース
- Gmail(独自ドメインで使用する場合
- Outlook(独自ドメインで使用する場合
- Zoho Mail(独自ドメインで使用する場合
WP Mail SMTPでは、SPFは必要ありません:
- で終わるGmailアドレス
gmail.com
またはgooglemail.com
(言い換えれば、自分のカスタムドメインに関連付けられていないGoogleのメールアドレス)。 - で終わるHotmailまたはMicrosoftのメールアドレス
outlook.com
- で終わるZoho Mailアドレス
zohomail.com
. - Postmark、SparkPost、またはSendLayerで設定された送信者。
必要なときにSPFを追加しないと、WP Mail SMTPは警告を表示することがあります:
Action Needed: It doesn't look like the SPF record required by Google has been added to your domain. Please check out Google's SPF guide for details on how to add this record to your domain's DNS.
SPFレコードがない場合はどうなりますか?
SPFレコードを必要としないメールプロバイダもあるので、問題ないかもしれません。例えば、PostmarkではDKIMを設定するだけです。
SPFが必要な場合は、ドキュメントにその旨が記載されています。
SPFが必要で、それを設定していない場合、メールサーバーはDMARCレコードを探し、そのメールをどうするかを判断します。DMARCに依存すると、あなたのEメールが迷惑メールフォルダに振り分けられる可能性が高いことに注意してください。
なぜ複数のSPFレコードを持つことになったのか?
複数のSPFレコードが偶然に追加されることがよくあります。例えば、1つ以上のSPFレコードがある場合があります:
- メーラーを変更した:メールサービスプロバイダを変更した場合(例えば、SMTP.comから Brevoに移行した場合)、新しいSPFレコードを追加する前に、最初のSPFレコードを削除し忘れた可能性があります。
- メールの種類によって異なるサービスを使用している:例えば、Brevoを使用してWP Mail SMTPでWordPressのメールを送信し、SMTP.comのような別のプロバイダーでメールマーケティングリストのメールを処理する必要があるかもしれません。
複数のSPFレコードがある場合、WP Mail SMTPのテストメールは機能しますか?
そうかもしれません。複数のSPFレコードを持っている(または全く持っていない)にもかかわらず、WP Mail SMTPでテストメールを受信していると言うお客様がいます。これは以下の理由かもしれません:
- 受信サーバーは裏で自動的に複数のSPFレコードを処理するので、問題があることに気づかない。
- あなたのメーラー・サービスは、いずれにせよSPFレコードを必要としない。
後で問題になることもあるので、放っておかない方がいい。
SPFはサブドメインにも適用されますか?
DMARCとは異なり、SPFはすべてのサブドメインに自動的に適用されるわけではありません。サブドメイン用に個別のSPFレコードを作成する必要があります。
DNSルックアップが多すぎる」とはどういうことか?
追加したinclude文は、DNSルックアップと呼ばれる。SPFはルール内のすべてのドメインをチェックすることで機能する。10を超えると失敗します。
Too many lookups(ルックアップが多すぎます)またはMaximum hop count exceeded(最大ホップ数を超えました)というエラーが表示されるかもしれません。
- SPFルールに10以上のルックアップを追加する必要がある場合は、サブドメインを追加し、そのサブドメイン用に新しいSPFルールを作成することで、この制限を回避することができる。
- 10個以上ない場合は、SPFレコード内のすべてのドメインが照会され、それらのドメインに複数の
include
ステートメントを使用している。その結果、入力したドメインに対してDNSが何度も照会されることになる。 SPFフラット化 が解決してくれるだろう。
さらに、プロバイダーに確認してください。複数のサービスを利用している場合、異なるSPFルールを提供しているかもしれません。
all vs ~allの意味は?
SPFレコードで、 -all
は、ドメインに一致しないメールは配信されないことを意味します。そのため ~all
施行規則はやや緩やかで、さらなる検証を求める。
メールプロバイダーによっては ?all
(ニュートラルな結果を与える)。
異なる実施規則を持つステートメントを組み合わせる必要がある場合は、次のようにすると安全です。 ~all
ただし、メールプロバイダーが別の方法を推奨している場合はこの限りではありません。
それはとても重要なことだ。 なかれ 使用 +all
をSPFレコードに追加してください。これにより、インターネット上の誰もがあなたのドメインを使ってスパムを送信できるようになります。
PTRレコードは必要か?
PTRレコードも必要ですが、自分で作成する必要はないでしょう。詳しくはPTRレコードのガイドをご覧ください。
SPF PermErrorの意味は?
PermErrorは、メールサービスプロバイダがドメインのSPFレコードの検証に失敗した場合に発生します。このエラーは、SPFレコードの入力で間違った構文を使用していたり、複数のSPFレコードを持っている場合に発生する可能性があります。
PermErrorを修正するには、構文を確認し、SPFレコードが複数ある場合は組み合わせてください。
一時的な問題を意味するTempErrorが表示されることもあります。TempErrorがどのようなものかは、ポストマスターツールの設定に関する記事をご覧ください。
DKIMレコードをマージする必要がありますか?
いいえ、DKIMレコードは、プロバイダによってはDNSの超長いエントリーを処理できないため、分割する必要があることがあります。2つ表示されている場合は、意図的な可能性があります。詳しくは、DKIMレコードを分割する方法の記事をお読みください。
次にDMARCレコードをチェックする
SPFは、配信可能性を向上させ、スパムを阻止するのに役立つ3つのメール認証方法の1つです。ほとんどのメールサービスプロバイダーは、DKIMとDMARCとともにSPFを使用しています。
SPFレコードの設定が完了したら、DMARCレコードの簡単な作成方法をご覧ください。すぐにコピー&ペーストできるDMARCの例も含まれています。
メールを修正する準備はできましたか?最高のWordPress SMTPプラグインで今すぐ始めましょう。WP Mail SMTP Proは、完全なWhite Glove Setupのオプションを提供し、14日間の返金保証を提供します。
この記事がお役に立ちましたら、Facebookや TwitterでWordPressのヒントやチュートリアルをご覧ください。