以下を実行するcronジョブの下にシェルスクリプトを配置したい:
1) Exim キューにある 2 日前の電子メール メッセージを削除します。これは、配信されないバウンス/凍結されたメッセージです。スクリプトは、正当であり、配信されるのを待っているだけのメッセージを削除してはなりません。
2) null または <> のような無効な送信者からのメッセージ、および/または無効な受信者の nobody または <> に送信されたメッセージを削除します。
どうもありがとう。
以下を実行するcronジョブの下にシェルスクリプトを配置したい:
1) Exim キューにある 2 日前の電子メール メッセージを削除します。これは、配信されないバウンス/凍結されたメッセージです。スクリプトは、正当であり、配信されるのを待っているだけのメッセージを削除してはなりません。
2) null または <> のような無効な送信者からのメッセージ、および/または無効な受信者の nobody または <> に送信されたメッセージを削除します。
どうもありがとう。
exiqgrep
あなたの友達です!特定の条件に一致するキュー アイテムを簡単に見つけて、見つかった message-id:s を remove コマンドにパイプすることができます。例えば:
exiqgrep -z -o 172800 -i | xargs -r exim -Mrm
これは次のように変換されます: 凍結された (-z) および 2 日以上経過した (-o 172800) キュー項目 (exiqgrep) を検索し、それらのメッセージ id:s (-i) を xargs に出力します。 r) 指定されたメッセージ ID:s のアイテムを削除 (-Mrm) するように exim に指示します。
Null (または <>) 送信者は確かに無効ではありません! バウンスおよびその他の (非) 配信レポートは、通常、バウンスが配信できない場合に無限ループを回避するために、null アドレスから送信されます。ただし、キューにこれらが多数あり、それらが長時間そこに留まっている場合 (たとえば、偽のアドレスから送信されたスパムをバウンスしようとしている場合) は、それらを確実にクリーンアップすることもできます。例えば:
exiqgrep -o 86400 -f '<>' -i | xargs -r exim -Mrm
これは、null 送信者を持つ 1 日より古いキュー アイテムを見つけて削除します。
編集: exim.conf で次のオプションを設定して、2 日後にフリーズしたバウンスを自動的に削除することもできます。
ignore_bounce_errors_after = 2d