muttrc:

muttrc:

昨晩、メーリング リストに登録したのですが、今朝になって、私の procmail フィルターがメーリング リストのメッセージの多くに適用されていないことに気付きました。今では、受信トレイには、より重要な仕事のメールと混ざって、それほど重要ではないメーリング リストのメッセージが大量に入っています。

受信トレイ内のすべてのメールを procmail フィルターに再度通すことは可能ですか?

注: maildir形式を使用しています

答え1

これはうまくいくと思います。 をformail実行してメールを再フォーマットし、 から送り返す必要がありますprocmail

Maildir ディレクトリから:

cat * | formail -s procmail

答え2

次のように、その場で実行できるかもしれません。

$ for m in Mail/{cur,new}/*; do echo $m; procmail <$m; rm $m; done

その後、元の電子メールをそれぞれ削除する必要があります。そうしないと、procmail によって電子メールが複製されます。

また、すべてを新規として記録します。これを処理する良い方法がわかりません。

答え3

mutt を使用している場合は、次のようなキー コマンドを使用して電子メールを procmail にパイプし、受信トレイから元の電子メールを削除することもできます。

muttrc:

macro index y '<enter-command>unset wait_key<enter><tag-prefix><pipe-entry>/usr/bin/procmail /home/user/.procmailrc<enter><tag-prefix><delete-message><enter-command>set wait_key<enter>'

macro pager y '<enter-command>unset wait_key<enter><pipe-entry>/usr/bin/procmail /home/user/.procmailrc<enter><delete-message><enter-command>set wait_key<enter>'

見つかったhttps://mikeburnscoder.wordpress.com/2011/06/12/one-big-mutt-inbox-filtered-after-the-fact-using-procmail/

答え4

これに対する良い解決策はないようです。procmail は からのメール入力のみを受け入れるようでstdin、maildir アプリケーションが制限されます。

私も同じような状況に直面しましたが、私のニーズに合った最善の解決策は、やりたいことをprocmail、しかし絶対にできないことを、自分の小さなスクリプトで単純に複製することでした。これは、注意する必要がある簡単なルールが 1 つまたは 2 つだけであれば十分なはずです。

cd ~/Maildir/
sh -c 'for i in `egrep -l "^Delivered-To: [email protected]" cur/*`; \
    do mv $i .FreeBSD.perforce/$i; done'

これも最適ではありませんが、少なくとも不必要な IO や潜在的なデータ損失の問題は発生しないはずです。

関連情報