Прошлой ночью я подписался на список рассылки и обнаружил сегодня утром, что мой фильтр procmail не применяется ко многим сообщениям списка рассылки. Теперь у меня есть множество менее важных сообщений в списке рассылки, перемежающихся с более важными рабочими электронными письмами, которые находятся в моем почтовом ящике.
Можно ли повторно выполнить все электронные письма в моем почтовом ящике через мои фильтры procmail?
Примечание: я использую формат maildir
Ответы:
Я верю, что это сработает. Вам нужно запустить,
formail
чтобы переформатировать почту и отправить ее обратноprocmail
.Из каталога Maildir:
cat * | formail -s procmail
источник
Вы можете сделать это на месте, например так:
После этого вы должны удалить каждое оригинальное письмо, иначе procmail продублирует его.
Он также будет записывать все как новое. Я не уверен в хорошем способе справиться с этим.
источник
procmail < $m && rm $m
вместоprocmail < $m ; rm $m
этого, по крайней мере, сообщение не удаляется в случае сбоя procmail.Если вы используете Mutt, вы можете направить письмо через procmail, а также удалить оригинал из папки «Входящие» с помощью ключевой команды, например:
Muttrc:
найдено на https://mikeburnscoder.wordpress.com/2011/06/12/one-big-mutt-inbox-filtered-after-the-fact-using-procmail/
источник
Кажется, что для этого нет хорошего решения: procmail, похоже, принимает только входящие сообщения
stdin
, что ограничивает возможности приложений maildir.Я столкнулся с подобной ситуацией, и лучшим решением, которое соответствовало моим потребностям, было просто дублирование того, что я хотел
procmail
сделать, но чего он совершенно определенно не может сделать, с моим собственным небольшим сценарием, которого должно быть достаточно, если у вас есть только одно или два простых правила что вам нужно позаботиться о:Это также не является оптимальным, но, по крайней мере, оно не должно страдать от ненужного ввода-вывода и потенциальных проблем с потерей данных.
источник