
Debian Wheezy に postfix 付きの opendkim をインストールしました。送信メールは DKIM 署名を取得しています。smtpd と non-smtpd milter の仕様は同じです。
受信メールは検証されていないようです。メール クライアントに Authentication-Results ヘッダーがありません。opendkim 構成に「AlwaysAddARHeader yes」を追加しましたが、違いはありません。
メール ログでは、メッセージを受信すると、さまざまなエントリの中に opendkim によるエントリが 2 つあります。最初のエントリはサーバーを識別し、「内部ではない」と追加します (Google の場合は妥当なようです)。2 番目のエントリは単に「認証されていません」と表示されます。しかし、認証されていない理由がわかりません。解決策はどこで探せばいいですか?
答え1
,no_milters
コンテンツ フィルターの宛先のオプションにより、コンテンツ フィルターの前後で Milter が 2 回実行されるのが防止されるようです。
オプションを削除することもできます,no_milters
。結果は次のようになります。
- opendkim がメールを検証できるようになりました
- milterは送信メールに対して2回実行されるため、メールには2つのdkim署名が存在します。
戻る,no_milters
オプションを選択した場合、opendkim は引き続き電子メールに署名できますが、それらを検証する機能は失われます。amavis を少しいじってみると、amavis は opendkim と同じ ID を使用することがわかりました。これは、両者が従う標準であるため、驚くことではありません。amavis は検証後に opendkim が追加したヘッダー (実際にはメッセージの検証は引き続き行われます) を空のヘッダーに置き換えるため、opendkim はメッセージを検証しないように見えます。
したがって、このヘッダーが消えないようにするには、次の 2 つの方法があります。
- コンテンツフィルターの後にmilterを実行するが、これは設計上不可能だと思う。
- amavisがこのヘッダーを上書きするのを防ぐ
milter が amavis より先に実行されないようにして、後に実行できるようにする方法は見つかりませんでした。ただし、$myauthservid = "amavis.local";
50 ユーザー構成ファイルの末尾近くを再定義することで、amavis がそのヘッダーを書き換えるのを防ぐことができます。少なくとも、私はその方法でこの問題を解決しました。
答え2
「認証されていない」という状況は、リモート メール サーバーがメッセージに署名していないだけかもしれません。すべての人が DKIM でメールに署名しているわけではありません。実際、このメカニズムは、本来あるべきほど広く実装されていません。そうは言っても、DKIM を使用するとメールの配信性が大幅に向上しますが、組織にメールを送信するすべての人が DKIM を使用するとは期待しないでください。私の意見では、DKIM はゆっくりと成長しています。
これは興味深いかもしれませんDKIM 導入動向の実験。
また、リモートサーバーがメッセージに署名していて、メールサーバーがそれを無視していることが確実な場合は、次の点を確認することをお勧めします。既知のバグはここにあります。