私が達成しようとしていること-結論:メールはスパムフォルダではなく受信トレイに送られます。
Postfixを実行しているサーバー(メールサーバー)があり、3つのドメインがあります。メールサーバーは、受信メールと送信メールの両方に使用されます。
私はopendkimで署名しており、DNSレコードを用意しています。
長い間観察した結果、メール送信者と署名者の割り当てが正しくないためにメッセージがスパムになっていることに気付きました。
私のメールサーバーはmailserver.example.comであり、他の3つのドメインはexample1.com、example2.com、example3.comです。
誰かが[email protected]からメールを送信すると、次のように表示されます。
mailserver.example.com経由の[email protected]
郵送先:mailserver.example.com
署名者:example1.com
MailjetとAmazonの電子メールがスパムになることはほとんどないことを私は観察しました。実際には、発信元のホスト名/ IPリバースがmailed-byとsigned-byに解決されるためです。
構成ファイル:
/etc/opendkim/Keytable
mvs._domainkey.example1.com example1.com:selc:/etc/opendkim/keys/example1_com/selc.private
mvs._domainkey.example2.com example2.com:selc:/etc/opendkim/keys/example2_com/selc.private
/etc/opendkim.conf
Domain example1.com
KeyFile /etc/opendkim/keys/example1_com/selc
Selector selc
Domain example2.com
KeyFile /etc/opendkim/keys/example2_com/selc
Selector selc
Canonicalization simple
Mode sv
Syslog yes
LogWhy yes
UMask 022
UserID opendkim:opendkim
KeyTable /etc/opendkim/KeyTable
SigningTable /etc/opendkim/SigningTable
ExternalIgnoreList /etc/opendkim/TrustedHosts
InternalHosts /etc/opendkim/TrustedHosts
Socket inet:34562@localhost
X-Header no
そして最後に
/etc/opendkim/SigningTable
example1.com selc._domainkey.example1.com
example2.com selc._domainkey.example2.com
どこに行方不明ですか?
まず、これらの値を削除してください(KeyTableを使用する場合は必要ありません)。
Domain example1.com
KeyFile /etc/opendkim/keys/example1_com/selc
Selector selc
Domain example2.com
KeyFile /etc/opendkim/keys/example2_com/selc
Selector selc
KeyTableを次のように設定します。
mykey1 example1.com:recordname1:/path/to/domain.key
mykey2 example2.com:recordname2:/path/to/domain.key
SigningTableをそのように設定します(ワイルドカードの一致とmykey1およびmykey2from KeyTable):
*@example1.com mykey1
*@example2.com mykey2
そして最後にopendkim.confを変更してSigningTable viarefile:プレフィックス(正規表現のサポート)::
SigningTable refile:/etc/opendkim/SigningTable
そして、参照用のドメインレコード(注recordname1およびrecordname2from KeyTable):
recordname1._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=..."
recordname2._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=..."
さらに、InternalHostsファイルにノードのホスト名(メールの送信元)があるかどうかを確認してください。
server1.example1.com
server2.example2.com
mail.example1.com
mail.example2.com
ここでも、refile:プレフィックスを使用して、次のようなものを追加できます。
*.example1.com
*.example2.com
複数のホストがあり、それらすべてを手動で含めたくない場合。ローカルメールのみを受け入れる場合は、ここにlocalhostを追加する必要があります。
ログファイルで[〜#〜] dkim [〜#〜]ホストがInternalHostsファイルにない場合の署名のスキップに関する通知を確認する必要があります。
Opendkim.confの例:
# Set these values (Syslog, SyslogSuccess, LogWhy) for debugging and check syslog for details
Syslog yes
SyslogSuccess yes
LogWhy yes
UMask 002
UserID opendkim:opendkim
KeyTable /etc/opendkim/KeyTable
SigningTable refile:/etc/mail/SigningTable
InternalHosts refile:/etc/mail/hosts