エックスサーバーでDKIMとDMARCを設定した手順|届いたレポートで、SPFに落ちた6通をDKIMが救っていました

こんにちは、ゆきしょうです。
独自ドメインで営業のメールをまとめて送る前に、エックスサーバーでDKIMとDMARCを設定しました。
画面での操作は、2つ合わせても数分で終わります。
設定した翌朝には、DMARCのレポートが届きました。
DKIMとDMARCは、メールが本物だと相手に示す設定
どちらも、自分のドメインから出したメールがなりすましではないと、受け取る側のサーバーに示すための設定です。
似た設定にSPFがあるので、3つを並べておきます。
- SPF … このドメインのメールを送ってよいサーバーを、DNSに書いておく
- DKIM … 送るメールに電子署名を付け、途中で書き換えられていないことを示す
- DMARC … SPFとDKIMの結果を見て、だめだったときの扱いを相手に伝え、結果のレポートも受け取れる
Googleは、Gmailあてに送るすべての送信者に、SPFかDKIMの設定を求めています。
1日に5,000件以上送る送信者には、SPFとDKIMに加えてDMARCも必要です。
メール送信者のガイドライン(Google Workspace 管理者ヘルプ)
私が足したのは、DKIMとDMARCの2つです。
エックスサーバーのDKIM設定は「OFF」を押すだけ
サーバーパネルの「DKIM設定」で、ドメインの右にある「OFF」を押して「ON」に変われば終わりです。
エックスサーバーのマニュアルは、新しいサーバーパネルと旧サーバーパネルの2種類に分かれています。
この記事の手順は、DKIMもDMARCも新しいサーバーパネルのものです。
- サーバーパネルにログインする
- 「DKIM設定」を開く
- 設定したいドメインの右端にある「OFF」をクリックする
- 「ON」に変われば完了
私のドメインはネームサーバーがエックスサーバーだったので、画面で押しただけでDNSにも反映されていました。
DMARCは「何もしない」とレポートONで始める
DMARCは、ポリシーを「何もしない」、レポートを「ON」にして始めます。
エックスサーバーのマニュアルも、まず「何もしない」でレポートを見て、段階的に厳しくするよう案内しています。
- サーバーパネルの「DMARC設定」を開く
- 設定したいドメインの右端にある編集ボタンを押す
- DMARCポリシーを「何もしない」にする
- レポートを「ON」にして、通知先のメールアドレスを入れる
- 「設定する」を押す
通知先のアドレスはDNSに書かれるので、外から誰でも見られます。
見られても困らないアドレスを選びます。
ポリシーの「メールを配送しない」は、認証に落ちたメールを受け取らないよう、受け取る側に指示する設定です。
最初からこれにすると、設定に漏れがあったとき、自分のメールまで受け取ってもらえなくなるおそれがあります。
Googleのヘルプは、SPFやDKIMを設定してからDMARCを設定するまで、48時間空けるよう案内しています。
私はDKIMとDMARCを同じ日に設定しました。
「何もしない」なら、認証に落ちてもメールは通常どおり届くからです。
設定できたかはdigで確かめる
画面の表示とは別に、DNSに本当に出ているかはdigで確かめられます。
ターミナルで次の3つを引きます。
example.com は自分のドメインに置き換えてください。
dig +short TXT default._domainkey.example.com @ns1.xserver.jp
dig +short TXT _dmarc.example.com @ns1.xserver.jp
dig +short TXT example.com @ns1.xserver.jp上からDKIM、DMARC、SPFです。
末尾の「@ns1.xserver.jp」は、問い合わせ先のネームサーバーの指定です。
私は、エックスサーバーのネームサーバーに直接聞きました。
ネームサーバーがエックスサーバー以外なら、@から後ろを外して引きます。
1行目の「default」は、DKIMのレコードの名前です。
私のドメインでは「default」でした。
空が返ってきたら、サーバーパネルのDKIM設定の一覧にある「表示」を開いて、レコードを確かめてください。
私のドメインでは、3つとも値が返ってきました。
頭はそれぞれ「v=DKIM1」「v=DMARC1; p=none」「v=spf1」です。
設定して数分後に引いた時点で、3つとも出ていました。
翌朝のレポートでは、SPFに落ちた6通がDKIMで合格していた
設定した翌朝、見慣れない件名のメールが届きました。
件名には「Report Domain」「Submitter」「Report-ID」と並んでいます。
これがDMARCの集計レポートです。
件名の3つの意味は、次のとおりです。
- Report Domain … 自分のドメイン
- Submitter … レポートを作った受信側
- Report-ID … レポートの番号
添付のXMLは、送り出したサーバーごとの「record」に分かれています。
recordごとに見る場所は、次のとおりです。
- source_ip … メールを送り出したサーバーのIPアドレス
- policy_evaluated の dkim … DMARCから見たDKIMの結果(passなら合格)
- policy_evaluated の spf … DMARCから見たSPFの結果(passなら合格)
その下の auth_results にも dkim と spf があります。
こちらには、判定に使ったドメインと、そのドメインでの結果が載っています。
手元で開いたのは、2つの会社から届いた2通のレポートです。
合わせて18通分の結果が載っていました。
- SPFもDKIMも合格: 12通(エックスサーバーのサーバーから届いたもの)
- SPFは不合格、DKIMは合格: 6通
SPFで落ちた6通は、相手側のレンタルサーバーを経由した5通と、Gmailを経由した1通です。
Googleのヘルプにも、転送されたメールはSPFに失敗することがよくある、と書かれています。
メールを Gmail に転送するおすすめの方法(Google Workspace 管理者ヘルプ)
SPFは送り出したサーバーで判定するので、途中で別のサーバーを通ると落ちることがあります。
6通も、auth_results のSPFは、私のドメインではなく、経由したサーバーのドメインで判定されていました。
DKIMはメールそのものに付いた署名なので、中身が書き換えられなければ残ります。
そしてDMARCは、SPFかDKIMのどちらかが、差出人のドメインと一致した形で合格していれば合格です。
DMARC を設定する(Google Workspace 管理者ヘルプ)
DKIMを入れていなかったら、この6通はDMARCで不合格になっていました。
ネームサーバーを他社に移すときは、レコードも写す
ネームサーバーがエックスサーバー以外なら、DKIMとDMARCのレコードを、そちらのDNSに自分で足します。
足すDKIMのレコードは、サーバーパネルのDKIM設定の一覧にある「表示」で確かめられると、マニュアルに書かれています。
私はこのあと、ドメインのネームサーバーをCloudflareに移しました。
今もDKIM・DMARC・SPFは、どれも同じ値で引けています。
移すときにこれらを写し忘れると、設定した認証がまるごと消えます。
メールのサーバーを選ぶなら、認証まで画面で済むかを見る
私はメールをエックスサーバーで使っています。![]()
DKIMもDMARCも、サーバーパネルの画面だけで設定できました。
すでに別の会社のサーバーでメールを使っている人は、乗り換えなくて大丈夫です。
その管理画面で、同じ名前の設定を探してみてください。
エックスサーバーの画面で直した話は、ほかにも書いています。
以上、エックスサーバーでDKIMとDMARCを設定し、届いたレポートを読んだ話でした。






