Anoche me suscribí a una lista de correo y esta mañana descubrí que mi filtro de procmail no se aplicaba a muchos de los mensajes de la lista de correo. Ahora tengo un montón de mensajes de listas de correo menos importantes intercalados con mis correos electrónicos de trabajo más importantes en mi bandeja de entrada.
¿Es posible volver a ejecutar todos los correos electrónicos de mi bandeja de entrada a través de mis filtros de procmail?
Nota: estoy usando el formato maildir
Respuesta1
Creo que esto funcionará. Debe ejecutar formail
para reformatear el correo y enviarlo de nuevo procmail
.
Desde el directorio Maildir:
cat * | formail -s procmail
Respuesta2
es posible que puedas hacerlo en el lugar, así:
$ for m in Mail/{cur,new}/*; do echo $m; procmail <$m; rm $m; done
Tienes que eliminar cada correo electrónico original después, o procmail lo duplicará.
También registrará todo como nuevo. No estoy seguro de una buena manera de manejar eso.
Respuesta3
Si está utilizando mutt, puede canalizar el correo electrónico a través de procmail y también eliminar el original de su bandeja de entrada con un comando de teclado similar a este:
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 enhttps://mikeburnscoder.wordpress.com/2011/06/12/one-big-mutt-inbox-filtered-after-the-fact-using-procmail/
Respuesta4
Parece que no hay una buena solución para esto: procmail solo parece aceptar entradas de correo stdin
, lo que limita las aplicaciones de maildir.
Me enfrenté a una situación similar y la mejor solución que se adaptaba a mis necesidades era simplemente duplicar lo que quería procmail
hacer, pero lo que definitivamente no puede hacer, con mi propio pequeño guión, que debería ser suficiente si solo tienes una o dos reglas simples. que debes cuidar:
cd ~/Maildir/
sh -c 'for i in `egrep -l "^Delivered-To: [email protected]" cur/*`; \
do mv $i .FreeBSD.perforce/$i; done'
Esto tampoco es óptimo, pero al menos no debería sufrir E/S innecesarias ni posibles problemas de pérdida de datos.