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はのメール入力のみを許可するようで、stdinmaildirアプリケーションが制限されます。

私も同様の状況にあり、私のニーズに最も適した解決策は私がやりたいことを単に繰り返すことでしたが、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や潜在的なデータ損失の問題は発生しません。

関連情報