ubuntuusers.de

/var/mail/MAILUSER Mailanhänge per Shell-Skript extrahieren

Status: Gelöst | Ubuntu-Version: Kubuntu 20.04 (Focal Fossa)
Antworten |

maplecut

Avatar von maplecut

Anmeldungsdatum:
7. Februar 2011

Beiträge: 239

Wohnort: Oberschwaben

Hallo Experten,

ich werde tägliche XLSX-Messdatendateien als E-Mail-Anhang bekommen und muss diese Anhänge automatisiert als CSV-Dateien weiterverarbeiten. Ein paar Schritte konnte ich schon abhaken:

base64 zu dekodieren klappt prinzipiell, die Umwandlung von XLSX in CSV geht mit LibreOffice per Bash-Skript problemlos.

Womit ich nicht weiter komme ist, dass ich nach dem Auslesen des gmail-Postfachs mit fetchmail die Mails alle hintereinander in einer einzigen Datei habe. Hat jemand eine Idee, wie ich daraus die Anhänge separieren kann? Das richtige Stichwort zum Googeln reicht evtl. schon.

Danke und Grüße!

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Wohnort: Göttingen

Das scheint mit munpack zu funktionieren. Alles müsstest Du die Mailbox noch irgendwie in einzelne Dateien zerhacken. Vielleicht wäre das auch mit einem Mutt-Macro zu machen...

maplecut

(Themenstarter)
Avatar von maplecut

Anmeldungsdatum:
7. Februar 2011

Beiträge: 239

Wohnort: Oberschwaben

munpack ist auf jeden Fall ein guter Tipp, weil es die Anhänge aus einer kompletten E-Mail extrahiert und dabei den Header und allen Text ignoriert. Leider müssen die Mails schon separiert sein – eine Datei mit mehreren Mime-Inhalten können nicht bearbeitet werden ("Did not find anything to unpack from ...").

Gibt es evtl. eine Lösung die einzelnen Mails aus einer /var/mail-Datei zu separieren?

Oder kann fetchmail das Postfach so auslesen, dass für jede Mail eine eigene Datei erzeugt wird? Das wäre sowieso sehr praktisch.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13213

Du könntest ggf. auch einen MDA wie procmail nehmen (Option -m bzw. --mda), der die Nachrichten einzeln auf verschiedene Dateien verteilt.

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Wohnort: Göttingen

Habe gerade was nettes dafür entdeckt:

cat $MAIL | formail -ds sh -c 'cat > msg.$FILENO'

Hierbei ist $MAIL einfach die Datei, die die Mails enthält.

In dem Link sind noch weitere Möglichkeiten erwähnt (Mit Perl und mailsplit): https://stackoverflow.com/questions/11281893/how-to-split-mailbox-into-single-file-per-message

maplecut

(Themenstarter)
Avatar von maplecut

Anmeldungsdatum:
7. Februar 2011

Beiträge: 239

Wohnort: Oberschwaben

Das ist super! Gekauft!

Vielen Dank!

Antworten |