2024年以降、GmailはSPFまたはDKIMによる送信者認証が通らないメールをブロックするようになりました。認証が未設定だと、送信したメールが次のようなエラーで弾き返されます。
550-5.7.26 Your email has been blocked because the sender is unauthenticated.
550-5.7.26 Gmail requires all senders to authenticate with either SPF or DKIM.
カラフルボックスは2024年2月に「DMARC設定」機能を追加しており、現在は管理画面からSPF・DKIM・DMARCの3つをまとめて登録できます。以前のようにDNSへ手作業でTXTレコードを追加する必要はありません。
この記事では現行パネルでの手順に加えて、サブドメインに設定したときにサイトが表示されなくなるケースについても扱います。手順自体は数分で終わりますが、この落とし穴を知らないと復旧に時間を取られます。
設定する3つの認証
| 認証 | 役割 |
|---|---|
| SPF | 送信サーバーのIPアドレスが正規のものかを証明する |
| DKIM | メールに電子署名を付与し、改ざんされていないことを証明する |
| DMARC | SPF・DKIMの結果に基づき、認証失敗時の動作を定義する |
Gmailの要件はSPFまたはDKIMのどちらかが通ることですが、なりすまし対策と到達率を考えると3つ揃えておくのが無難です。
「DMARC設定」と「DNSマネージャー」のどちらを使うか
管理画面の左メニューには「DMARC設定」と「DNSマネージャー」が並んでいます。名前だけ見るとDMARCしか設定できないように思えますが、SPF・DKIM・DMARCの3つをまとめて扱うのは「DMARC設定」の方です。

「DNSマネージャー」はDNSレコードを直接編集する画面で、後半で登録内容を確認したり修正したりするときに使います。まずは「DMARC設定」から始めます。
なお、この機能は独自ドメインのみが対象で、初期サブドメイン(○○○.cfbx.jp)には対応していません。
手順1. DMARC設定を開く
マイページにログインし、「サービス」から対象のサーバープランの「契約中」をクリックします。左メニューのアクション欄にある「DMARC設定」を開くと、そのサーバーに紐づくドメインの一覧が表示されます。

各ドメインの状態は次の3種類で表示されます。
| 表示 | 意味 |
|---|---|
| 未設定(SPF,DKIM) | 括弧内の認証が未登録 |
| 設定済み | 3つとも登録済み |
| タイムアウト | 現在のDNS状態を取得できなかった |
「タイムアウト」は設定の失敗ではなく、状態の確認に失敗しているだけです。「再取得」を押すか、ページを読み込み直すと解消します。状態の取得が終わるまで右側のボタンは押せないため、ドメイン数が多いと表示に時間がかかることがあります。
手順2. SPF・DKIM・DMARCを一括登録する
対象ドメインの行にある「DNS Manager」をクリックすると、登録される値がモーダルで表示されます。

ここで「DNS Managerに設定する」を押すと、3つのTXTレコードが自動でDNSに登録されます。IPアドレスやDKIMの公開鍵を自分で調べて入力する必要はありません。確認メッセージで「OK」を押し、状態が「設定済み」に変われば完了です。
個別に登録したい場合は、各項目の右にある「コピー」で値を控えて、DNSマネージャーから手動でTXTレコードを追加します。ドメインを他社のDNSで管理している場合は、「DNS Manager」ではなく「他社DNS」ボタンから値をコピーし、そちらの管理画面で登録します。
サブドメインは1つずつ設定する
見落としやすいのですが、SPFとDKIMは親ドメインからサブドメインへ継承されません。example.jp に設定しても、shop.example.jp から送るメールは認証されないままです。
Gmailは送信元アドレスのドメインを見て判定するため、サブドメイン名義でメールを送っているなら、そのサブドメインを一覧から選んで個別に設定します。判断に迷ったら、フォームやWordPressの送信元アドレス(From)がどのドメインになっているかを確認してください。
一方でDMARCは、サブドメイン専用の _dmarc レコードがなければ親ドメインのポリシーが継承されます。そのため _dmarc.shop のようなレコードを別途用意する必要はありません。
手順3. 登録された内容を確認する
「DNSマネージャー」から対象ゾーンを開くと、追加されたレコードを確認できます。

サブドメイン shop に設定した場合、次の3件が登録されます。
| 名前 | タイプ | 内容 |
|---|---|---|
shop |
TXT | v=spf1 ip4:[サーバーのIP] include:_spf.cbsv.jp ~all |
default._domainkey.shop |
TXT | v=DKIM1; k=rsa; p=[公開鍵] |
_dmarc |
TXT | v=DMARC1; p=none; rua=mailto:... |
DKIMのセレクタは default です。後述の確認ツールで入力を求められるので覚えておきます。
手順4. DMARCのレポート送信先を実在するアドレスに直す
一括登録を使うと、DMARCの rua(レポート送信先)に dmarc-reports@ドメイン名 が自動で入ります。ただしこのアドレスは自動では作られないため、そのままだとレポートがどこにも届きません。

メールアカウント一覧で実在するアドレスを確認し、DNSマネージャーで _dmarc レコードを書き換えます。

"v=DMARC1; p=none; rua=mailto:admin@example.jp"
rua はレポートの宛先を指定するだけなので、メールが届くかどうかには影響しません。受け取れるアドレスがまだない場合は、v=DMARC1; p=none; のままにしておいて後から追加しても問題ありません。指定するアドレスは同じドメインである必要もなく、実際に受信できるアドレスであれば大丈夫です。
注意点:サブドメインに設定するとサイトが表示されなくなることがある
ここが最大の落とし穴です。SPFとDKIMを登録した直後に、そのサブドメインのサイトが表示されなくなることがあります。

原因はワイルドカードのAレコード
サブドメインを個別のAレコードではなく、ワイルドカード(* のAレコード)でまとめて運用しているケースは珍しくありません。* があれば shop.example.jp も www.shop.example.jp も同じIPに解決されるためです。
ところがSPFやDKIMのTXTレコードを追加すると、shop.example.jp というノードがゾーン上に実在する状態になります。DNSの仕様では、実在するノードの配下には親のワイルドカードが適用されません。結果として、これまでワイルドカードで解決していたAレコードが引けなくなり、名前解決に失敗します。
メール認証の設定そのものは正しく、Aレコードだけが失われた状態です。
対処:Aレコードを明示的に追加する
DNSマネージャーの「レコードを追加」から、Aレコードを直接登録します。

| 名前 | タイプ | TTL | アドレス |
|---|---|---|---|
shop |
A | 3600 | サーバーのIPアドレス |
www.shop |
A | 3600 | サーバーのIPアドレス |
www あり・なしの両方を使っているなら、2件とも登録します。追加後のゾーンは次のようになります。

ワイルドカードで運用しているサブドメインは、認証設定のたびに同じ現象が起きます。SPF・DKIMの登録と、AレコードおよびwwwのAレコードの追加はセットで行うと覚えておくと事故を防げます。
復旧しないときはDNSキャッシュを疑う
レコードを追加してもエラーが続く場合、手元のDNSキャッシュに「見つからない」という結果が残っていることがあります。シークレットモードはCookieを消すだけでDNSキャッシュには影響しないため、切り分けにはなりません。
まず権威サーバーへ直接問い合わせて、設定側が正しいかを確認します。
dig @ns1.cbsv.jp www.shop.example.jp +short
サーバーのIPアドレスが返れば、DNS側の設定は完了しています。あとはキャッシュを消すだけです。macOSの場合は次のコマンドで解消します。
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Chromeを使っている場合は chrome://net-internals/#dns の「Clear host cache」も併用します。スマートフォンのモバイル回線からアクセスして表示されるかを試すと、手元のキャッシュの問題かどうかを素早く切り分けられます。
設定の確認方法
DNSの反映には時間がかかります。新規に追加したレコードは数分から1時間程度で参照できることが多く、既存レコードを書き換えた場合はTTLの分だけ古い値が残ります。
MXToolboxで確認する
MXToolbox の SPF Lookup と DKIM Lookup を使います。

DKIM Lookup では、ドメインとセレクタを example.jp:default の形式で入力します。

なお、MX Lookupで「DNS Record not found」と表示されることがありますが、これはMXレコードが登録されていないという意味です。

送信専用でそのドメインでは受信していない構成であれば、MXレコードがなくても送信認証には影響しません。SPFとDKIMの結果を確認してください。
実際のメールで確認する
最終的な答え合わせは、Gmailに届いたメールで行うのが確実です。メールを開いて「メッセージのソースを表示」を選ぶと、spf=pass dkim=pass dmarc=pass の判定結果が確認できます。ツールの結果より実態に近い情報が得られます。
DMARCポリシーは変更すべきか
MXToolboxでは、SPFやDKIMが正常でも「DMARC Policy Not Enabled」という警告が表示されます。これは quarantine か reject の使用を推奨する案内で、主にBIMI(ブランドロゴ表示)を有効にするための条件です。エラーではないため、Gmailへの到達を目的にしているなら p=none のままで問題ありません。
むしろ、未設定のサブドメインが残っている状態で厳格化するのは避けるべきです。 親ドメインのDMARCポリシーは、専用の _dmarc を持たないすべてのサブドメインに継承されます。p=reject にすると、SPF・DKIMが未設定のサブドメインから送ったメールが拒否されるようになります。
厳格化する場合は次の順序で進めます。
- 使用しているサブドメインすべてにSPF・DKIMを設定する
ruaで受け取るレポートを2週間から1か月ほど確認し、認証に失敗している正規の送信経路がないか調べる- 問題がなければ
p=quarantineに変更する(pct=25などから段階的に上げると安全) - 十分に安定してから
p=rejectに変更する
SPFの ~all と -all も同じ考え方です。~all は認証に失敗しても受信する設定、-all は拒否する設定なので、運用が安定するまでは ~all のままにしておきます。
まとめ
| 項目 | 内容 |
|---|---|
| 設定場所 | マイページ → サービス → 契約中 → アクション「DMARC設定」 |
| 登録方法 | 対象ドメインの「DNS Manager」→「DNS Managerに設定する」 |
| サブドメイン | SPF・DKIMは継承されないため個別に設定する |
| 追加作業 | ワイルドカード運用ならAレコードとwwwのAレコードを追加する |
| レポート先 | rua を実在するメールアドレスに書き換える |
| 確認 | MXToolboxのSPF Lookup・DKIM Lookup、Gmailのメッセージソース |
設定作業そのものはボタンを数回押すだけで終わります。時間を取られるのはサブドメインのAレコードとDNSの反映待ちなので、その2点を意識しておくとスムーズに進みます。
関連記事
さくらのレンタルサーバー+お名前.comで、SPF・DKIM・DMARCのメール認証を設定する方法【Gmail対応】