web-dev-qa-db-ja.com

DMARCはメール転送の終わりですか?

多くのドメインでかなりの量のメール転送を使用していますが、AOLの最新のp = rejectポリシーによっていくつかの問題が発生し、多くの混乱が生じています。 DMARCについての私の理解は、それがDKIMとSPFに基づいており、レポート層があることです。 SPFが転送の問題であることを理解していますが、SPFが〜all soft failに設定されている限り、それはショーストッパーではありません。また、ヘッダーをあまり変更しない限り、DKIMは問題なく転送を通過できると思いました。ただし、MailGunによって転送されているAOLからの特定の電子メールが、GMailに到達したときにDMARCに失敗していることがわかりました。 MailGunは、送信者/不一致エラーによるものだと言います。 DMARCの影響でメールの転送が失敗するのか、それともMailGunが正しく転送されないのかについて誰かが詳しく説明できますか?

19
user2988743

あなたが直面している問題は転送ではなく、DKIMの調整だと思います。はい、SPFは失敗しますが、DKIMはパスするはずですが、DKIMアライメントはパスしない場合があります。 DMARCでは、ポリシーに基づいて、配置を厳密にするか緩和する必要があります。アライメントについて詳しくは、こちらをご覧ください。 Identifier Alignments

結果の整合性を示す[email protected]へのメール送信などのテストツールがありますが、これは有料機能です。

これは問題なので、「ARC」と呼ばれる作品に新しい仕様があります。これの目的は、このまさにこの問題を解決することです。これについては、こちらをご覧ください。 ARC Spec

14
Henry

この問題についてMailgunサポートに問い合わせたところ、役立つ回答はありませんでした。ただし、解決策は実際にはドキュメントにあります。

注メッセージを別の電子メールアドレスに転送する場合は、コントロールパネルでドメイン設定を編集して、クリック追跡を無効にし、追跡を開き、購読を解除する必要があります。これらの機能が有効になっている場合、各メッセージのコンテンツは転送前にMailgunによって変更され、DKIM署名が無効になります。メッセージがDMARCポリシーを公開しているドメイン(Yahoo!メールなど)から送信された場合、メッセージは転送先によってスパムとして拒否されます。

https://documentation.mailgun.com/en/latest/user_manual.html#routes

そこで、メインドメインでメールの受信に使用しているすべての機能をオフにし、DMARCバウンスを解決しました。これらの機能を使用する場合は、送信メール用のサブドメインを設定する必要があります。

7
imjosh

上記のように、メールを送信すると、somedomain.comがメールにDKIM(メールのコンテンツの一意のハッシュ)をスタンプするという問題があります。 MailgunがメッセージをGmailに転送すると、open/click/unsubscribeの変更が挿入され、DKIMハッシュが無効になります。

Somedomain.com DMARCは「DKIMが無効にされたものはすべて拒否する」と言っているため、Gmailまたは他のサービスはメールを拒否します。

私が見つけた回避策は、ネイティブのメールボックスソリューションを使用することでした。 WhoIsには、セットアップが簡単なWhoIsが付属しています。例: https://manage.whois.com/kb/servlet/KBServlet/faq579.html

その後、Gmailの設定でPOPメールボックスを追加しただけです。 (Gmail 2017年12月24日現在)。 Open and Clickトラッキングを再度有効にできましたが、すべてが機能し、引き続きGmailでメールを受信できます。

おまけとして、メールを共有の受信トレイとして使用しているため、転送された応答だけでなく、送信されたメールを受信トレイで誰でも見ることができます。

[編集]これを行った後、ネイティブのメールボックスソリューションでのみメールを取得しているのに気づいたが、Mailgunでメールを取得する必要がなくなった。

これを回避するために、サブドメインを使用してmxa.mailgun.orgを指すようにMXレコードを追加したので、mg.exampledomain.com

次に、WhoIsの転送ルールを使用して、info @ exampledomain.comに配信されたすべてのメールを[email protected]にも配信されるように送信しました。 Mailgunでメッセージを受信しましたが、POPメールボックスを介してGmailでメッセージを表示できます。

1
Philipp Cannons

私の場合、これは単に無効なDKIM署名が原因であることが判明しましたフォワーダーが[〜#〜]ではない[〜#〜]メッセージを変更しているという事実にもかかわらず、信頼できる送信者から。

間にフォワーダーがない場合、SPFは通過し、いずれにしてもメールの通過を許可した可能性がありますが、SPFがここを通過しない場合(認証された送信者ではないため)、DMARCは受信者にハードフェイルを通知し、次に、フォワーダーが次のようなエラーをGmailから受け取る可能性があります。

5.7.1ドメインのDMARCポリシーにより、example.comからの未認証メールは受け入れられません。
これが正当なメールである場合は、example.comドメインの管理者に連絡してください。
DMARCイニシアチブの詳細については、 https://support.google.com/mail/answer/245169 にアクセスしてください。
-gsmtp

ここでの重要なフレーズはunauthenticatedemailで、しないメールを意味します有効な署名がある。 一方、認証済みメールは、ドメインから許可されている可能性があります。

次のようにして、問題が無効なDKIM署名であることを確認できます。

$ pip install dkimpy  # dkimpy supercedes pydkim
$ dkimpy -v < message.eml
Traceback (most recent call last):
  File "/usr/sbin/dkimverify", line 10, in <module>
    sys.exit(main())
  File "/usr/lib/python/site-packages/dkim/dkimverify.py", line 41, in main
    res = d.verify()
  File "/usr/lib/python/site-packages/dkim/__init__.py", line 869, in verify
    return self.verify_sig(sig, include_headers, sigheaders[idx], dnsfunc)
  File "/usr/lib/python/site-packages/dkim/__init__.py", line 696, in verify_sig
    (base64.b64encode(bodyhash), sig[b'bh']))
dkim.ValidationError: body hash mismatch (got b'...', expected b'...')

残念ながら、これが発生した場合、自分で自由に使える優れたオプションはありません。

  • 独自のドメインから個別の配信失敗メッセージを送信し、元のメールを添付ファイルとして含めます。これを適切に行うと、Gmail(および場合によっては他の受信者)は、添付ファイルを転送されたメッセージとしてインラインで表示できます。

  • 「From」アドレスを自分のアドレスに置き換えてから、自分のDKIMキーで署名します。
    おそらく、受信者がそれが何であったかを知ることができるように、元のメールを添付ファイルとして含めます。

  • 受信者がyourselfの場合は、メールをダウンロードして受信トレイに直接送信するスクリプトを記述します(たとえば、IMAP経由で、または APIを使用して直接 )。 。

  • ドメインの所有者に伝えて、修正してもらいたい。
    (ただし、まだ理解していない場合は、 がんばって彼らを納得させる 問題は彼らの側にあります。)

0
user541686