MailgunのSPF・DKIM・DMARC設定ガイドの解説イメージ画像

MailgunのSPF・DKIM・DMARC設定ガイド


著者: Yunes Tarada
翻訳: 東條 百々朱

この記事はPowerDMARCのブログ記事 Mailgun SPF, DKIM, DMARC Setup Guide の翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。


主なポイント

  1. SPF、DKIM、DMARCを使用してメール認証を正しく設定することで、メールが迷惑メールフォルダではなく、受信トレイへ届きやすくなります。
  2. Mailgunでは、送信ドメインの追加後に、ドメイン認証に必要なDNSレコードが表示されます。
  3. DNSを更新する際は、Mailgunの画面に表示されたレコードタイプに従って、認証用およびトラッキング用のTXTレコードやCNAMEレコードを追加します。
  4. Mailgunの検証機能を利用すると、各DNSレコードが正しく設定され、有効になっているかを確認できます。
  5. DMARCポリシーを段階的に強化することで、ドメインのセキュリティとメールの信頼性を高められます。

重要なメールが迷惑メールフォルダへ振り分けられる場合、ドメインのメール認証が正しく設定されていないことが原因かもしれません。
SPF、DKIM、DMARCレコードを設定すると、GmailやOutlookなどのメールサービス提供者が、Mailgunから送信されたメールの正当性を確認できるようになります。
本ガイドでは、Mailgunで送信ドメインを認証し、メールを受信トレイへ届きやすくするための設定ステップを説明します。

Mailgunのメール認証設定手順

ステップ1:Mailgunへ送信ドメインを追加する

まず、Mailgunのアカウントへ送信に使用するドメインを追加します。

  1. Mailgunへログインします。image19
  2. 左側のメニューから「Send」をクリックし、「Sending」セクションの「Domains」を開きます。image17
  3. 「Add New Domain」ボタンをクリックします。image15-1
  4. メール送信に使用するドメイン名を入力します。
    Mailgunでは、メール送信用のサブドメインを使用することが推奨されており、メインドメインがexample.comの場合は、mg.example.commail.example.comなどを使用できます。
    ただし、運用方針に応じてメインドメインを使用することも可能です。image12
  5. 「Add Domain」をクリックします。
    ドメインの認証に必要な複数のDNSレコードが表示されます。
    この画面は、後のステップで参照するため開いたままにしておきます。image13
  6. 新しいブラウザタブを開き、Namecheap、GoDaddy、Cloudflareなど、利用しているDNSホスティングプロバイダの管理画面へログインします。image5-1
  7. 対象ドメインのDNSレコードを編集できるページを開きます。
    サービスによっては、「Advanced DNS」「DNS Management」「DNS Records」などの名称が使用されています。
    この画面へ、Mailgunに表示されたDNSレコードを追加します。image3-1

ステップ2:MailgunのDKIMレコードを設定する

  1. Mailgunのドメイン設定画面に表示されているDKIMレコードを確認します。
    Mailgunの設定や利用環境によって、DKIMレコードの種類はTXTまたはCNAMEとなる場合があります。
    必ず、Mailgunの画面に表示されているレコードタイプに従ってください。image9-1
  2. Mailgunに表示されているホスト名をコピーし、DNS管理画面の「Host」「Name」などのフィールドへ貼り付けます。
  3. 次に、対応する値をコピーし、「Value」「Target」「Content」などのフィールドへ貼り付けます。image14
  4. TTLを指定する必要がある場合は、DNSプロバイダのデフォルト値または自動設定を使用します。
  5. すべての値を入力したら、レコードを保存します。image1-1

ステップ3:MailgunのSPFレコードを設定する

  1. Mailgunの画面に表示されているSPF用のTXTレコードを確認します。
  2. メインドメインへ設定する場合、「Host」または「Name」フィールドには通常@を入力します。
    サブドメインを使用している場合は、Mailgunに表示されたホスト名を入力してください。
  3. SPFの値をMailgunからコピーし、DNS管理画面へ貼り付けます。image18
    注意点として、すでにSPFレコードが存在する場合は、新しいSPFレコードを追加しないでください。
    1つのドメインに複数のSPFレコードを公開すると、SPF認証でPermErrorが発生する可能性があります。
  4. 既存のSPFレコードがある場合は、そのレコードを編集し、Mailgunを許可するincludeメカニズムを追加します。
    一般的には、以下のような形式です。
    
    include:mailgun.org
    
    例えば、既存のSPFレコードが次のようになっている場合は次のようになります。
    
    v=spf1 include:_spf.google.com ~all
    
    Mailgunを追加すると、次のようになります。
    
    v=spf1 include:_spf.google.com include:mailgun.org ~all
    
    設定後、DNSルックアップ回数がSPFの上限である10回を超えていないことを確認します。
  5. SPFレコードを保存します。

ステップ4:Mailgunのトラッキング用CNAMEレコードを設定する

  1. Mailgunの画面で、トラッキング用のCNAMEレコードを確認します。
    このレコードを設定することで、Mailgunの開封トラッキングやクリックトラッキングで、自社ドメインまたはサブドメインを使用できます。image7
  2. Mailgunに表示されているホスト名をコピーします。
  3. DNS管理画面で新しいCNAMEレコードを作成し、「Host」または「Name」フィールドへホスト名を貼り付けます。
  4. Mailgunに表示されている値をコピーし、「Value」「Target」「Points to」などのフィールドへ貼り付けます。image10-1
  5. CloudflareなどのDNSサービスを使用している場合は、Mailgunの案内に従い、必要に応じて対象のCNAMEレコードのプロキシ機能を無効にします。
  6. CNAMEレコードを保存します。

ステップ5:Mailgun用のDMARCレコードを設定する

  1. すでにDMARCレコードが公開されているか確認します。
    すでにDMARCレコードがある場合、新しいレコードを追加してはいけません。
    1つのドメインに公開できるDMARCレコードは1つだけです。
  2. DMARCをまだ導入していない場合は、DMARC用のTXTレコードを作成します。
  3. 「Host」または「Name」フィールドに、通常_dmarcを指定します。
  4. MailgunからDMARCレコードの例が提示されている場合は、その内容を確認して値を設定します。
    Mailgunが案内する初期設定では、一般的にp=noneポリシーが使用されます。image11-1
    p=noneは、認証に失敗したメールを拒否したり隔離したりせず、主にレポートを収集するための監視ポリシーです。
  5. 導入初期はp=noneで認証状況を確認します。
  6. すべての正当な送信元でSPFまたはDKIMのアライメントが取れていることを確認します。
  7. 問題を修正した後は、段階的にp=quarantineへ移行し、最終的にはp=rejectを適用します。
    p=none
    レポートを収集し、認証状況を監視します。
    p=quarantine
    認証に失敗したメールを迷惑メールフォルダなどへ隔離するよう受信側へ求めます。
    p=reject
    認証に失敗したメールを拒否するよう受信側へ求めます。
    DMARCを安全に強化するには、レポートの継続的な監視が重要です。
    Mailgunには、DMARC集約レポートを詳細に分析する専用の管理画面が用意されていない場合があります。
    PowerDMARCのDMARCレポート分析ツールを利用すると、XML形式の集約レポートを分かりやすい形式で確認できます。
  8. PowerDMARCを利用する場合は、PowerDMARCが指定するレポート送信先をruaタグへ設定します。
    これにより、以下のような問題を把握しやすくなります。
    • SPFやDKIMの認証失敗
    • ドメインアライメントの不一致
    • 未承認のメール送信元
    • 配信サービスの設定ミス
    • なりすましやスプーフィングの兆候
    rufタグによる失敗レポートは、すべてのメールサービス提供者が送信するわけではありません。
    また、メールの一部や個人情報が含まれる可能性があるため、設定前にプライバシーや法的要件を確認してください。16h05_31

ステップ6:MailgunでDNSレコードを検証する

  1. DNSレコードを追加したら、開いたままにしておいたMailgunの画面へ戻ります。
  2. ページ下部までスクロールし、「Verify DNS Settings」ボタンをクリックします。image8-1
  3. DNSの変更がインターネット上へ反映されるまで待ちます。
    反映には数分で済む場合もありますが、DNSプロバイダやTTLの設定によっては数時間から最大24~48時間かかることがあります。
  4. すぐに検証が完了しない場合は、時間を置いてから再度「Verify DNS Settings」をクリックします。
  5. すべてのレコードの横に緑色のチェックマークが表示されていることを確認します。

すべてにチェックマークが表示されれば、Mailgun側での検証は完了です。
Mailgunからドメイン検証完了の通知メールが届く場合もあります。image2-1

ステップ7:設定を確認し、DMARCポリシーを強化する

Mailgunで検証が完了した後は、外部の分析ツールを使用して、SPF、DKIM、DMARCが正しく公開されているかを確認することをおすすめします。
PowerDMARCのドメイン分析ツールを利用すると、ドメインのメール認証設定をまとめて確認できます。

  1. PowerDMARCのアカウントを作成します。17h14_51
  2. 左側のメニューから「分析ツール」>「PowerAnalyzer」へ移動します。
  3. 対象のドメイン名を入力します。
  4. 表示されたドメインの健全性レポートで、SPF、DKIM、DMARCなどの設定状況を確認します。17h19_25
  5. DMARCをp=noneで運用している場合は、レポートを一定期間監視し、正当なメール送信元がすべて認証されていることを確認します。
  6. 認証に問題がないことを確認したら、メール到達率への影響を確認しながらp=quarantineへ移行します。
  7. p=quarantineで問題がないことを確認した後、最終的にp=rejectへ移行します。

設定完了後に得られる効果

以上で、Mailgunを使用したドメインのメール認証設定は完了です。
SPF、DKIM、DMARCが正しく設定されていれば、Mailgunから送信するメールの正当性を受信側が確認できるようになります。
ただし、メール認証を設定しただけで、すべてのメールが必ず受信トレイへ届くわけではありません。

メール到達率には、送信者評価、迷惑メール率、メールリストの品質、送信量、コンテンツ、受信者のエンゲージメントなども影響します。
Mailgun向けにSPF、DKIM、DMARCを適切に設定することで、以下の効果が期待できます。

DMARCレポートの自動監視、分かりやすいレポート表示、高度なポリシー管理を利用したい場合は、PowerDMARCで一連の運用を一元管理できます。
PowerDMARCのDMARC管理プラットフォームのデモを予約し、実際の機能をご確認ください。