したがって、DKIMを正しく理解している場合、それは基本的に公開鍵/秘密鍵タイプのサービスです。ただし、複数のサーバー/ソースからメールを送信する場合、これはどのように機能しますか?たとえば、ホストドメインのExchangeサーバーからメールを(同じドメインの下で)送信し、cPanel共有ホスティングアカウントからメールを送信する分割ドメインがあります。さらに、サードパーティ(請求サービス、マーケティングメールサービスなど)が一部のメールを送信できるようにして、私のドメインを使用して送信できるようにしました。さらに悪いことに、これらのサービスの一部はDKIMサポートさえ提供していません。私のSPFレコードは正しいですが、DKIMも機能させたいと思っています(Googleは現在、多くのメールをスパムとしてマークしているため、DKIMを有効にして、最後にスムーズにフローを開始できるようにする必要があります)。どんな助けでも大歓迎です。ありがとう!
追伸使用している一部のサーバーでDKIMを有効にできる場合、DKIM署名なしで送信されたメールにフラグが付けられますか?たとえば、受信メールサーバーは常にドメインにDKIM公開キーを照会しますが、ヘッダーでDKIM署名が見つからない場合、メールにフラグが付けられるか破棄される可能性がありますか?
DKIMの目的は、メッセージのヘッダーと本文に署名し、メッセージの発信元を検証し、変更されていないことを確認することです。一部のスパムフィルターのレピュテーションは副産物にすぎず、DKIMを実装する主な理由ではありません。
秘密鍵を共有せずに複数のシステムから同じドメインのDKIM署名を許可するには、DKIMにselectors( RFC 5376、3.1 )があります。 署名ヘッダー には、公開キーs=someselector
のDNSクエリで使用されるsomeselector._domainkey.example.com. TXT
タグがあります。
セレクタは何でもよいため、重複するセレクタ名を使用しない限り、複数のサービスに署名を追加できます。一部のサービスでは、固定セレクター名を使用する実装が不十分です。 Microsoft 365 は常にselector1
およびselector2
を使用しますが、 G Suite を使用すると、セレクターを変更してデフォルトをgoogle
にできます。
セレクターの使用には欠点があります。DKIMの弱点は、署名されたメッセージの検証にしか使用できないことですが、それだけでは、メッセージに署名する必要があるかどうかを判断する方法がありません。署名のないメールは、DNSがアドレスを認識していないため、DNSにDKIMキーがあるかどうかを確認できません。この観点からは、一部のソースからのメッセージに署名することも完全に問題ありませんが、一部のメッセージは署名せずに残しておきます。
[〜#〜] dmarc [〜#〜] は、メッセージにaligningDKIMヘッダーまたはSPFを整列エンベロープ送信者で渡します。また、ドメインからFrom
アドレスとして送信されたメッセージがDMARCを通過するかどうか、およびSPF、DKIM、またはその両方を使用して整合するかどうかに関する洞察を収集するためにも使用できます。
Yagmoth555の答えはあなたの問題に対する1つの解決策であり、非常に適切な代替案かもしれませんが、それは典型的な解決策ではありません。さらに重要なことは、上記で説明した理由により、DKIMの実装を開始するためにそのパスをとる必要はありません。
p=none
とrua=mailto:[email protected]
を使用してDMARCポリシーを追加し、状況についてのレポートを取得します。これにより、システムをゆったりと調整できます。DKIMの実装を続行したり、DKIMをサポートするシステムに切り替えたり、別のFrom
ドメインとの互換性のないメッセージの送信を開始したりできます。すべての正当なメールがDMARCテストに合格し始めたら、より厳密なDMARCポリシーに移行できます。クラウドサービスを使用して、すべてのサービス(スマートホスト)のメールを送信できます。
その中央でDKIMを有効にします。
そのセットアップはクライアント用でしたか。次に、他のすべてのプロバイダーがそこを経由して送信することを許可します。私の場合は、インバウンドスキャンを許可し、アウトバウンドスキャンとDKIM署名も許可するTrendmicroメールセキュリティを使用しました。