私が_example.com
_を所有していて、 サーバーにdkimをインストールして構成する (_apt-get install opendkim opendkim-tools
_など)、ドメインのDNSレコードに関連する公開鍵を追加するとします。 。
次に、サーバーから電子メールを送信すると(例:with PHP mail(...)
or postfix)、DKIM署名が付けられます。
ただし、 "Send mail as"機能と Sendgrid SMTPを使用して、Gmailから_[email protected]
_のメールも送信します。
しかし、GmailにはDKIMの設定が表示されません。 Gmailから送信されたメールは、DKIM署名付きで送信されないため、禁止/正しく送信されませんか?
DKIMを使用して自分のドメインのGmailからメールを送信する方法(としてメールを送信機能を使用)
注:これは、私が話している "Send mail as"機能です。
DomainKeys Identified Mail(DKIM)は、送信中にメールの内容が改ざんされていないことを確認するためのものです。 Sender Policy Framework(SPF)とは異なり、メッセージの送信元を許可された送信者として検証しようとはしていません。 RFC 5585、1.1 DKIMのスコープ これを説明します:
DKIMは、電子メールの付加価値機能として意図されています。 DKIMによって署名されていないメールは、DKIMが定義される前と同じ方法で処理されます。メッセージは、確立された分析およびフィルタリング技術によって評価されます。 。 (署名ポリシーは、その分析とフィルタリングに関する追加情報を提供できます。)時間の経過とともに、DKIMが広く採用されると、署名されていないメッセージをより厳密に処理できるようになる可能性があります。ただし、初期のメリットはこれを必要とせず、おそらくこれを保証するものではありません。
したがって、DKIMに関するチェックは、署名を含む電子メールに対してのみ実行されます。 [〜#〜] dmarc [〜#〜] で必要とされない限り(これは、他の目的の中でも、より厳密な処理と見なされる場合があります) 、DKIMでメッセージに署名しなくても、メッセージが拒否されることはありません。
SendGrid、Gmailなどは適切な DKIM Selector で署名するため、重複はありません。
たとえば、SendGridでホワイトラベルが付けられていない場合は、s=smtpapi, d=sendgrid.net
で署名します。彼らはsmtpapi._domainkey.sendgrid.net
に記録を持っています。 SendGridでがホワイトラベルされている場合(そうする必要があります)、m1._domainkey.example.com
またはs1._domainkey.example.com
のいずれかのDNSレコードが作成されています。公開鍵、または公開鍵へのCNAME。 Googleアプリはセレクターga1
を使用します。 Gmail自体が何を使用しているかわかりません。独自のサーバー送信メールも、DKIMのセットアップ時に定義した セレクター を使用します。
受信サーバーがDKIM署名を検証しているとき、公開鍵を照会するときに署名のs=
値が考慮されます。これはDKIMの重要な機能であり、セキュリティのために公開鍵をローテーションできるほか、ESPに代わって署名させたり、その他の複数の鍵が必要になったりする可能性があります。