Organice el correo electrónico por date usando procmail o maildrop

Me gustaría organizar todo el correo electrónico entrante en la siguiente estructura de directory en function de la date del correo electrónico:

ROOT --+-- YYYYMMDD --+-- HH --+-- mm --+-- YYYYMMDD-HHmmSS-000001 | | | | | | | | .... | | | | | | | +-- YYYYMMDD-HHmmSS-NNNNNN | | +-- mm -- | +-- HH --+-- mm -- 

Tenga en count que cada correo electrónico se almacenará como un file separado y el nombre del file es AAAAMMDD-HHmmss-NNNNN, donde NNNNN es un número en ejecución.

¿Puede Procmail o Maildrop hacer esto? Si no, ¿qué otras opciones hay?

Gracias por adelantado.

No tengo una respuesta que satisfaga todo lo que quieres, pero una parte de ello. Si es suficiente usar la date en la que llega el correo en lugar del encabezado de date del correo y si una carpeta por date también es suficiente, puede hacer esto con maildrop:

 DEFAULT="$HOME/Maildir" MAIL = "$HOME/Maildir" DAY = `date +%d` MONTH = `date +%m` YEAR = `date +%y` ARCHIVEFOLDER = $YEAR$MONTH$DATE `test -d $MAIL/.$ARCHIVEFOLDER` if ( $RETURNCODE != 0 ) { `maildirmake -f $ARCHIVEFOLDER $MAIL` } # logfile "/tmp/maildrop" # log $MAIL/.$SPAMORDNER to $MAIL/.$ARCHIVEFOLDER } 

Espero que puedas build sobre esto.

Si conoces algo de Python, debería ser un ejercicio bastante trivial:

Python viene con un package de correo electrónico en la biblioteca estándar que le permite leer los correos electrónicos de files de text y analizarlos automáticamente en objects utilizables . Después de haberlos analizado, puedes simplemente mostrarlos en consecuencia (cada post tiene un método "as_string").

La estructura básica sería así:

  1. Itera sobre tus files
  2. Abra cada file y analice en un object de correo electrónico
  3. toma la date y divídela en los campos que necesitas
  4. abra el manejador del file de destino (el número en ejecución es el último número + 1 o 1)
  5. escriba msg.as_string () en el file