muttrc:

muttrc:

Ontem à noite me inscrevi em uma lista de discussão e descobri esta manhã que meu filtro procmail não se aplicava a muitas das mensagens da lista de discussão. Agora tenho um monte de mensagens de lista de e-mail 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 filtros do procmail?

Nota: estou usando o formato maildir

Responder1

Eu acredito que isso vai funcionar. Você precisa executar formailpara reformatar o e-mail e enviá-lo de volta pelo procmail.

No diretório Maildir:

cat * | formail -s procmail

Responder2

você pode fazer isso no lugar, assim:

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

Você deve remover cada e-mail original posteriormente, caso contrário o procmail irá duplicá-lo.

Ele também registrará tudo como novo. Não tenho certeza de uma boa maneira de lidar com isso.

Responder3

Se você estiver usando o mutt, você pode canalizar o e-mail através do procmail e também excluir o original da sua caixa de entrada com um comando de tecla mais ou menos assim:

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>'

encontrado emhttps://mikeburnscoder.wordpress.com/2011/06/12/one-big-mutt-inbox-filtered-after-the-fact-using-procmail/

Responder4

Parece que não há uma boa solução para isso: o procmail parece aceitar apenas entradas de email de stdin, o que limita os aplicativos maildir.

Eu enfrentei uma situação semelhante, e a melhor solução que atendeu às minhas necessidades foi simplesmente duplicar o que eu queria procmailfazer, mas o que definitivamente não pode ser feito, com meu próprio pequeno script, que deve ser suficiente se você tiver apenas uma ou duas regras simples que você precisa cuidar:

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

Isso também não é o ideal, mas pelo menos não deve sofrer com E/S desnecessárias e possíveis problemas de perda de dados.

informação relacionada