Doubletten aus mbox entfernen. Kleines HowTo mit formail und procmail

Autor: Raphael Eiselstein <rabe_at_uugrn.org>
Datum: Wed, 11 Feb 2015 01:33:31 +0100
Hallo zusammen,

aufgrund einer *kleinen* Panne in einem Mail-Script habe ich mir in
duzenden mbox-Files teilweise mehrere Duplikate einzelner E-Mails erzeugt, 
indem ich ein und die selbe eingehende E-Mail mehrfach parallel mittels 
procmail verarbeitet habe. 

Das Script selbst prüft zwar, ob eine Mail mit einer checksumme schon 
ge-procmail't wurde, hatte aber ursprünglich kein lockfile erzeugt, was 
eine parallel laufende Instanz des Scriptes effektiv am *zeitgleichen* 
Verarbeiten ein und der selben E-Mail verhindert hätte.

Lessons learned ;)

Aufräumen geht dann so (wer auch immer das mal benötigt):

Angenommen neue (eingehende) Mails werden mit procmail verarbeitet und
dabei sortiert, kann man eine bestehende mbox Datei (also das, wo wo
procmail reinschreibt) mittels "formail" nochmal durchlaufen lassen.

In seiner Standardform funktioniert formail zB so:

formail -s procmail < ./unsortierte.mbox

Dabei wird der Inhalt von ./unsortierte.mbox in einzelne Nachrichten
aufgespilittet und einzeln an procmail verfüttert, also letztlich genau
das, was ein lokaler Mailer eben auch tun würde, zB sendmail, oder eben
mein Spezialscript (mit dem Bug).

formail kann dabei doppelte Message-IDs ausfiltern, wenn man ihm das
sagt:

formail -D 1048576 /tmp/idcache.tmp -s procmail < ./mbox-mit-duplikaten


Gruß
Raphael

PS: und jetzt bitte keine Beschwerden von Hipstern, die neumodischen 
Kram wie "maildir" verwenden oder von Leuten, die E-Mails nur noch mit 
GUIs oder gar nur noch Webmailer kennen!

-- 
Raphael Eiselstein <rabe_at_uugrn.org> 
PGP                   4E63 5307 6F6A 036D 518D  3C4F 75EE EA14 F625 DB4E
.........|.........|.........|.........|.........|.........|.........|..



-- 
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/

Empfangen am 11.02.2015

Dieses Archiv wurde generiert von hypermail 2.2.0 : 11.02.2015 CET