Anoche me suscribí a una lista de correo y descubrí esta mañana que mi filtro procmail no se aplicaba a muchos de los mensajes de la lista de correo. Ahora tengo montones 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 en mi bandeja de entrada a través de mis filtros procmail nuevamente?
Nota: estoy usando el formato maildir
Respuestas:
Creo que esto funcionará. Debe ejecutar
formail
para formatear el correo y enviarlo nuevamenteprocmail
.Desde el directorio de Maildir:
cat * | formail -s procmail
fuente
es posible que pueda hacerlo en su lugar, así:
Luego debe eliminar cada correo electrónico original, de lo contrario, procmail lo duplicará.
También registrará todo como nuevo. No estoy seguro de una buena manera de manejar eso.
fuente
procmail < $m && rm $m
lugar deprocmail < $m ; rm $m
hacerlo, al menos el mensaje no se eliminará si falla Procmail.Si está usando 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:
encontrado en https://mikeburnscoder.wordpress.com/2011/06/12/one-big-mutt-inbox-filtered-after-the-fact-using-procmail/
fuente
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 ajustaba a mis necesidades era simplemente duplicar lo que quería
procmail
hacer, pero lo que definitivamente no puede hacer, con mi propio pequeño script, que debería ser suficiente si solo tienes una o dos reglas simples que debes cuidar:Esto tampoco es óptimo, pero al menos no debería sufrir IO innecesarios y posibles problemas de pérdida de datos.
fuente