Heute stand ich vor dem problem, eine aus Lotus Notes exportierte datei mit emails in mein Gnome Evolution zu importieren.
Die export datei (export.txt) enthält einen Lotus Notes mailordner, die emails sind mit einem "linefeed" voneinander getrennt. Die datei ist UTF8 codiert und enthält ein sog. Byte Order Mark (BOM).
Die importfunktion von Evolution erkannte das format nicht, desshalb ging es nicht auf diese art und weise :-(
Ich habe desshalb die datei in die einzelnen emails "gesplittet" und direkt in das entsprechende maildir verzeichnis meiner Evolution installation kopiert. Hier die einzelnen schritte:
Byte Order Mark entfernen:
Und dabei gleich noch eine sicherungskopie anfertigen.
erwin@venus:/tmp> file export.txt export.txt: UTF-8 Unicode (with BOM) text, with very long lines, with CRLF line terminators erwin@venus:/tmp> dd if=export.txt bs=1 skip=3 of=export2.txt 90704+0 Datensätze ein 90704+0 Datensätze aus 90704 Bytes (91 kB) kopiert, 0,110384 s, 822 kB/s erwin@venus:/tmp> file export2.txt export2.txt: UTF-8 Unicode text, with very long lines, with CRLF line terminators
Ein paar feldnamen korrigieren:
Ich habe dann noch die namen der beiden kopfzeilen "SendTo:" bzw. "PostedDate:" in "To:" und "Date:" umbenannt, da sonst Evolution diese daten nicht richtig erkennt. Ich habe an dieser stelle nicht weiter nachgeforscht, warum die feldbezeichnungen nicht passen. Auch hätte man noch weitere felder umformatieren können, aber das hat mir soweit gereicht...
erwin@venus:/tmp> sed -i -e "s|^SendTo:|To:|g" -e "s|^PostedDate:|Date:|g" export2.txt
Datei in einzelne emails aufteilen "splitten":
Die aufteilung erfolgt durch das (linux/unix) tool "csplit", dieses teilt eine datei mit hilfe eines suchstrings ("pattern") in einzelne dateien auf. Die ergebnisdateien werden unter dem namen "xx+<aufsteigende nummer>" gespeichert. Die emails sind durch ein "linefeed" zeichen (^L) voneinander getrennt, daraus folgt das entsprechende pattern für den csplit.
erwin@venus:/tmp> csplit export2.txt "/^L/" "{*}" 6304 1211 9479 8339 2684 3294 3173 8999 6504 3829 12300 6538 7181 1477 1576 2009 2364 1774 1474 5 erwin@venus:/tmp> ls export* xx* export2.txt export.txt xx00 xx01 xx02 xx03 xx04 xx05 xx06 xx07 xx08 xx09 xx10 xx11 xx12 xx13 xx14 xx15 xx16 xx17 xx18 xx19
Die einzelnen emaildateien (xx*) können dann in das Evolution maildir verzeichnis (z.b. $HOME/.maildir/new) kopiert werden. Damit sind sie dann im email-eingangs ordner von Evolution sichtbar und können von da aus weiter verarbeitet werden.