Regla de procmailrc para "coincidencias de encabezado en repetición de encabezado previamente vistos de mensajes-id encabezado"

StackOverflow https://stackoverflow.com/questions/7342218

  •  27-10-2019
  •  | 
  •  

Pregunta

Tratando de descubrir cómo tener una regla .procmailrc que arroja todo el correo que responde al correo previamente visto. Uso de MailDir, y desea que la regla cubra mensajes en CUR/ o NUEVO/ ...

¿Debería hacer que PROCMAILRC analice todos los archivos? ¿O debería tener una regla que extraiga los encabezados de ID de mensaje, los descarte en un archivo y analice eso?

No puedo simplemente verificar y tirar nada con el encabezado en repente, como si sea una respuesta a algo que esta dirección aún no ha visto, debe ser aceptado.

¿Fue útil?

Solución

Debe recopilar un caché de ID: s de mensajes entrantes:

:0c:
| formail -zxMessage-Id: >>msgid.txt

Luego verifique la respuesta en la respuesta: con este caché (probablemente antes en su .procmailrc para que pueda filtrar el spam antes de agregar un ID de mensaje al caché);

:0
* ? formail -zxIn-Reply-To: | fgrep -f msgid.txt -
./whitelisted

Ver también los ejemplos de formail -D para comparacion. Quizás podrías masajear las cosas en una forma en la que realmente puedas usar formail -D Como el back-end (reemplace el ID de mensaje: con de: antes de agregar al caché; divide el en repente: y realice una sustitución similar en cada ID de mensaje). formail puede mantener un caché LRU de tamaño constante, mientras que el fgrep El archivo seguirá creciendo indefinidamente (aunque en este caso, tal vez eso sea precisamente lo que desea).

Cuando inicialmente configura esto, probablemente desee recopilar un caché de los mensajes que tiene en cur y new Ya, pero después de eso, no debe referirse a esos mensajes nuevamente desde su receta. (Si su bandeja de entrada es como la mía, el grepeteo en tiempo real de toda la bandeja de entrada sería bastante inviable).

Si desea un gran caché, reemplazar un archivo de texto sencillo con SQLite o algo probablemente valdría la pena considerar. En realidad, para cuando una base de datos adecuada realmente vale la pena, es posible que desee una base de datos real en lugar de SQLite, pero solo tengo ideas vagas sobre la escalabilidad de diferentes motores de bases de datos para este tipo de cosas, y sin experiencia práctica.

Tenga en cuenta que, a menos que tenga una configuración inusual, su ID de mensaje saliente: S no se agregará al caché; Para que esto sea realmente útil, tal vez debería organizar que eso suceda de alguna manera, y/o establecer un patrón que coincida con su ID de mensaje saliente (idealmente sin falsos positivos, y ciertamente sin falsos negativos. Si ha cambiado de MUAS En el pasado, tal vez debería buscar patrones para mensajes antiguos tuyos por separado, si desea una cobertura total).

PRECAUCIÓN: No probado, y probablemente estoy bastante oxidado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top