Ontem à noite, inscrevi-me em uma lista de discussão e descobri hoje de manhã que meu filtro procmail não se aplicava a muitas das mensagens da lista de discussão. Agora, tenho muitas mensagens de lista de correio menos importantes intercaladas com meus e-mails de trabalho mais importantes na minha caixa de entrada.
É possível executar novamente todos os e-mails da minha caixa de entrada através dos meus filtros do procmail novamente?
Nota: estou usando o formato maildir
Respostas:
Eu acredito que isso vai funcionar. Você precisa executar
formail
para reformatar o email e enviá-lo de voltaprocmail
.No diretório Maildir:
cat * | formail -s procmail
fonte
você pode fazer isso no lugar, assim:
Você precisa remover cada email original posteriormente ou o procmail o duplicará.
Ele também gravará tudo como novo. Não tenho certeza de uma boa maneira de lidar com isso.
fonte
procmail < $m && rm $m
invés dissoprocmail < $m ; rm $m
, pelo menos a mensagem não será removida se o procmail falhar.Se você estiver usando o mutt, poderá canalizar o email pelo procmail e também excluir o original da sua caixa de entrada com um comando-chave semelhante a este:
muttrc:
encontrado em https://mikeburnscoder.wordpress.com/2011/06/12/one-big-mutt-inbox-filtered-after-the-fact-using-procmail/
fonte
Parece que não há uma boa solução para isso: o procmail parece aceitar apenas a entrada de
stdin
e- mail , o que limita os aplicativos principais.Enfrentei uma situação semelhante, e a melhor solução que atendia às minhas necessidades era simplesmente duplicar o que eu queria
procmail
fazer, mas o que definitivamente não pode fazer, com meu próprio pequeno script, que seria suficiente se você tivesse apenas uma ou duas regras simples que você precisa cuidar de:Isso também não é o ideal, mas pelo menos não deve sofrer IO desnecessário e possíveis problemas de perda de dados.
fonte