多くのドメインでかなりの量のメール転送を使用していますが、AOLの最新のp = rejectポリシーによっていくつかの問題が発生し、多くの混乱が生じています。 DMARCについての私の理解は、それがDKIMとSPFに基づいており、レポート層があることです。 SPFが転送の問題であることを理解していますが、SPFが〜all soft failに設定されている限り、それはショーストッパーではありません。また、ヘッダーをあまり変更しない限り、DKIMは問題なく転送を通過できると思いました。ただし、MailGunによって転送されているAOLからの特定の電子メールが、GMailに到達したときにDMARCに失敗していることがわかりました。 MailGunは、送信者/不一致エラーによるものだと言います。 DMARCの影響でメールの転送が失敗するのか、それともMailGunが正しく転送されないのかについて誰かが詳しく説明できますか?
あなたが直面している問題は転送ではなく、DKIMの調整だと思います。はい、SPFは失敗しますが、DKIMはパスするはずですが、DKIMアライメントはパスしない場合があります。 DMARCでは、ポリシーに基づいて、配置を厳密にするか緩和する必要があります。アライメントについて詳しくは、こちらをご覧ください。 Identifier Alignments
結果の整合性を示す[email protected]
へのメール送信などのテストツールがありますが、これは有料機能です。
これは問題なので、「ARC」と呼ばれる作品に新しい仕様があります。これの目的は、このまさにこの問題を解決することです。これについては、こちらをご覧ください。 ARC Spec
この問題についてMailgunサポートに問い合わせたところ、役立つ回答はありませんでした。ただし、解決策は実際にはドキュメントにあります。
注メッセージを別の電子メールアドレスに転送する場合は、コントロールパネルでドメイン設定を編集して、クリック追跡を無効にし、追跡を開き、購読を解除する必要があります。これらの機能が有効になっている場合、各メッセージのコンテンツは転送前にMailgunによって変更され、DKIM署名が無効になります。メッセージがDMARCポリシーを公開しているドメイン(Yahoo!メールなど)から送信された場合、メッセージは転送先によってスパムとして拒否されます。
https://documentation.mailgun.com/en/latest/user_manual.html#routes
そこで、メインドメインでメールの受信に使用しているすべての機能をオフにし、DMARCバウンスを解決しました。これらの機能を使用する場合は、送信メール用のサブドメインを設定する必要があります。
上記のように、メールを送信すると、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でメッセージを表示できます。
私の場合、これは単に無効な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を使用して直接 )。 。
ドメインの所有者に伝えて、修正してもらいたい。
(ただし、まだ理解していない場合は、 がんばって彼らを納得させる 問題は彼らの側にあります。)