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сделать, но чего он определенно не может сделать, с помощью моего собственного небольшого скрипта, которого должно быть достаточно, если у вас есть только одно или два простых правила, о которых вам нужно позаботиться:

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

Это тоже не оптимально, но, по крайней мере, не должно возникнуть проблем с ненужным вводом-выводом и потенциальной потерей данных.

Связанный контент