「DMARCポリシーによりメールが拒否されました」のトラブルシューティング [解決済み]
正規のメールなのにDMARCに失敗する理由
2025年1月13日
著者: Yunes Tarada
翻訳: 竹洞 陽一郎
この記事はPowerDMARCのブログ記事 Troubleshooting “Email Rejected per DMARC Policy” [SOLVED] の翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。
DMARCは、組織がメールメッセージが詐称やなりすましでないことを追加で保証する必要がある場合に、メール業界内で実装することができます。
これらのポリシーは、フィッシング、メールスパム、分散型サービス拒否(DDoS)攻撃に利用される可能性のある偽造送信を防ぐために設計されています。
しかし残念ながら、正当なメールもDMARC認証に失敗し、「DMARCポリシーによりメールが拒否されました」というメッセージが表示されることがあります。
これは、悪いユーザ体験をもたらす可能性があります。
この原因となる可能性があるものには、以下が含まれます。
- SPFレコードが正しく実装されていないこと
- DKIMが期待どおりに動作していないこと
- DNSレコードが正しく設定されていないこと
次のセクションでは、「DMARCポリシーによりメールが拒否されました」というエラーを受信サーバが返す原因について、詳しく検討していきます。
重要なポイント
- 正当なメールであっても、SPF、DKIM、またはDNSレコードの誤りによりDMARC認証に失敗することがあります。
- DMARC拒否の一般的な理由には、DKIMレコードの欠落、メールエイリアスのSPF設定ミス、および「FROM」フィールドの不一致が含まれます。
- トラブルシューティングの方法としては、DKIM認証の設定、メールエイリアス用のSPFレコードの更新、そして「FROM」フィールドが送信者のドメインと一致していることを確認することが挙げられます。
- PowerDMARCは、メール認証を簡素化し、メールの到達率を向上させ、DMARC関連の問題を軽減するソリューションを提供します。
- DMARCポリシーの遵守を維持するためには、メール認証レコードを定期的に確認・更新することが不可欠です。
DMARCポリシーによりメールが拒否される:原因とそのトラブルシューティング
「DMARCポリシーによりメールが拒否されました」というメッセージを受け取ったことはありませんか?
この問題の根本原因と、そのトラブルシューティング方法について説明します。
原因1:DKIM認証レコードが設定されていない
DKIM認証レコードは、メールがDMARC認証を通過するために必要です。
このレコードにより、受信者はメールが該当ドメインの正当な所有者から送信されたものであることを確認できます。
つまり、なりすましではないことを証明するものです。
そのため、送信元のドメインには、DMARCチェックを通過し、ユーザにメールが届くようにするための有効なDKIMレコードが必要です。
トラブルシューティング方法
「DMARCポリシーによりメールが拒否される」問題を解決するには、DKIM認証を設定して有効にする必要があります。
DKIMを有効にすると、ドメインのメールサーバが送信するすべてのメールに対して、一意のデジタル署名を生成し、メッセージヘッダーに追加します。
受信者側は、デジタル署名を検証するために必要な公開鍵をダウンロードし、それを使用して署名を復号化します。
DKIM認証を設定するには、以下の手順を実行します。
- 1. ドメインネームサーバ(DNS)の設定を構成し、DKIM署名に関連する公開鍵と秘密鍵を含むドメイン情報を公開できるようにする。
-
- メールドメインの公開鍵と秘密鍵のペアは、Webサーバの設定やDNSプロバイダのWebサイトで確認できます。
- まだ鍵を持っていない場合は、「DKIM Record Generator Tool」などのオンラインツールを使用して生成できます。
- 2. DNS設定を開き、公開鍵を含むTXTレコードを作成する。
-
これにより、送信メールにDKIM署名を追加できるようになります。
DKIMレコードには、秘密鍵やDKIM実装に関する情報が含まれます。
記述例:example.com IN TXT “v=DKIM1; k=rsa; p=[public key]”
- 3. メールソフトウェアを設定し、メール送信時にDKIM署名を使用するようにする。
-
必要に応じて、メールサービスプロバイダのサポートを確認してください。
または、SPFをDKIMの代わりに実装する方法もあります。
DKIMの代わりにSPF(Sender Policy Framework)を実装することでも、この問題の解決に役立ちます。
原因2:ドメインのSPF設定がメールエイリアスを許可していない
エイリアスを使用して送信されたメールは、受信ドメインのSPFポリシーにより拒否されることがあります。
これは、エイリアスを経由して送信されたメールが正当なものと認識されないためです。
例えば、john@example.com というメールアドレスを持っており、Gmailエイリアス johndoe@gmail.com を使用してメールを送信した場合、SPFポリシーがエイリアスを許可していないと、そのメールは拒否されます。
トラブルシューティング方法
ドメインのSPFレコードにメールエイリアスのSPFレコードを追加することで、この問題を解決できます。
ただし、設定を正しく行うことが重要です。
まず、使用しているメールエイリアスのSPFレコードを取得します。
例えば、Gmailを使用している場合、Googleの開発者向けドキュメントページでGmailエイリアスのSPFレコードを確認できます。
v=spf1 include:_spf.google.com ~all
OutlookやYahooを使用している場合、それぞれのSPFレコードをドメインのSPFレコードに追加する必要があります。
これらのレコードは各プロバイダのWebサイトやオンライン検索で確認できます。
主要なプロバイダのSPFレコードの例を以下に示します。
Zohoにおける「DMARCポリシーによりメールが拒否される」エラー
このエラーを解決するには、Zohoが指定するSPF、DKIM、およびDMARCの設定を適切に構成する必要があります。
詳細な手順は、PowerDMARCのソリューションページで確認できます。
また、Zohoサポートは、Zoho Webmailまたは認証済みSMTPサーバを使用してメールを送信することを推奨しています。
これにより、メールの拒否を防ぐことができます。
Yahoo.co.uk における「DMARCポリシーによりメールが拒否される」エラー
Yahooサポートによると、以下の理由でこのエラーが発生する可能性があります。
- 認証されていないサーバからメールを送信している
- ドメインのSPFレコードにyahoo.co.uk を正規の送信元として追加していない
このエラーを解決するには、DNSレコードを適切に修正する必要があります。
- ドメインレジストラのDNS管理ツールを開き、"_spf" という名前のTXTエントリを探します。
これにより、ドメインのSPFレコードを確認できます。 - 手順1で取得したエイリアスのSPFレコードを、ドメインのSPFレコードに追加します。
原因3:「FROM」フィールドの更新が必要
メールの送信元アドレスが、メッセージの「FROM」フィールドに記載されたアドレスと一致していない場合、DMARCによりスパムまたはフィッシングメールとして拒否される可能性があります。
この問題を解決し、メールを正常に送信するには、メールプロバイダの設定ページで「FROM」フィールドを更新する必要があります。
また、「FROM」フィールドの代わりに「REPLY-TO」設定を使用することで、DMARC準拠の任意のアドレスからメールを送信することも可能です。
この方法を使用すると、受信者のメールサービスプロバイダによってメールが拒否されることを回避できます。
トラブルシューティング方法
この問題を解決するには、「FROM」フィールドをブランドのメールアドレスに更新する必要があります。
これは、メールアカウントの設定を変更することで実行できます。
例えば、Gmailを使用している場合は、以下の手順に従います。
- 受信トレイを開き、Gmailからのメッセージをクリックします。
- メッセージボックスの右側にある「その他の操作」ボタンをクリックし、「元のメッセージを表示」を選択します。
- 新しく開いたウィンドウで、「To:」の部分をスクロールして確認し、それをブランドのメールアドレスに置き換えます。
- ページ下部の「変更を保存」ボタンをクリックします。
- これで、Gmailを通じてメールを送信しても「DMARCポリシーによりメールが拒否される」ことなく、正常に送信できるようになります。
PHPでの「FROM」フィールドの設定例
以下は、PHPの$headers変数を設定する際のサンプルコードです。
$headers = 'From: user@example.com' . "\r\n" . 'Reply-To: user@gmail.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion();
このように「FROM」フィールドを適切に設定し、「REPLY-TO」を活用することで、DMARCポリシーによるメール拒否を回避できます。
追加情報
メールのバウンス(送信失敗)について
通常、「メールのバウンス」とは、DMARCポリシーエラーによりメールが送信者に返送されることを指します。
メールのバウンスは一般的な問題であり、メールを送信しても受信者のメールボックスがいっぱいである場合(ソフトバウンス)や、受信者のメールアドレスが存在しない場合(ハードバウンス)に発生します。
この結果、送信したメールがエラーメッセージとともに送信者に返送されることがあります。
スパムフォルダへの振り分け
メールは、送信されると複数のサーバやネットワークを経由して目的の受信者に届けられます。
各サーバやネットワークでは、そのメールにスパムの特徴がないかをチェックし、問題があると判断された場合、メールをスパムフォルダへ送信したり、拒否したりします。
多くのスパムフィルタは、以下の要素をチェックします。
- 送信回数と開封率
-
例えば、100人の受信者に送信しても誰も開封しなかった場合、スパムと判定される可能性があります。
さらに、受信者が急に開封しなくなると、スパム判定のリスクが高まります。 - 配信停止リンクの可視性
- メールの配信停止(unsubscribe)リンクが見つけにくい場合も、スパム判定の要因になります。
スパム扱いを防ぐ方法
- 受信者リストの適切な管理
-
すべての受信者が適切にリストに登録されていることを確認する。
一度に大量のメールを送信せず、24時間ごとに分割して送信する。 - 配信停止(unsubscribe)リンクの明確な表示
- すべてのメールに配信停止リンクを明確に表示し、受信者が簡単に配信を解除できるようにする。
結論
受信者に正しくメールを届けるためには、DMARCポリシーに準拠することが重要です。
しかし、それほど難しいことではありません。
- DKIMレコードが設定されていることを確認する。
- 必要に応じてSPFレコードを更新する。
- 「FROM」フィールドが適切に設定されていることを確認する。
また、DMARCレコードの設定や監視、管理についてサポートが必要な場合は、PowerDMARCの無料トライアルに登録して、すべての設定をお任せください!