同じ件名の複数のメールでバックアップされているmailqがあります。特定の件名行に一致するmailqのすべてのメールを削除して、送信されないようにしたいと思います。これを行う方法はありますか?そのスパム関連としてかなり緊急です。
Postfixにはexigrepのようなユーティリティがないため、サブジェクトのキューファイルをgrepしてから、キューIDをpostsuperにパイプして削除する必要があります。
通常のPostfixインストールでは、Eメールは/ var/spool/postfixにあります。いくつかのキューがあります。 postsuperを安全に使用して電子メールを削除できるように、postfixを停止する必要があります。この短いスクリプトは、特定の文字列に一致するすべての電子メールを削除します。今回のケースでは、すべて同じ件名のメールを何千通も見つける必要がありました。
この場合、制限を超えたためにメールサービスがメールを拒否したため、メールはすべて延期されました。
cd /var/spool/postfix/deferred
grep -r -i -l "This was the subject line" ./ | cut -d/ -f3 | postsuper -d -
これに関するいくつかのキーノート:
これがこれを見つけて、より具体的な指示を探している人々に役立つことを願っています。
Gviewによって提案された同じことを行うための単なる代替コマンド:
find /var/spool/postfix/deferred/ -exec grep -l 'Subject: this was the subject line' {} \; | xargs -r -n1 basename | xargs -r -n1 postsuper -d