Extrahieren / Speichern eines E-Mail-Anhangs mit bash

30

Verwenden Sie normale bashTools (dh integrierte oder allgemein verfügbare Befehlszeilentools)

  • möglich, und
  • Wie

E-Mail-Anhänge extrahieren / speichern?

Angenommen, ich habe einen nächtlichen Bericht, der per E-Mail eingeht, aber ein ZIP-Archiv mit mehreren Protokolldateien ist. Ich möchte alle diese Reißverschlüsse in einem Sicherungsverzeichnis speichern. Wie würde ich das erreichen?

Labyrinth
quelle
"Normale Bash-Tools" - Verwenden Sie nur die in Bash integrierten Funktionen (dh die Funktionen, die Sie in der Bash-Manpage finden) oder allgemein Befehlszeilen-Tools, die Sie einem Bash-Shell-Skript hinzufügen können ?
Doug Harris
@ Doug Harris - entweder .. wenn ich anrufen mailund dies tun kann, oder den Anhang anderweitig speichern, ist das auch in Ordnung :)
warren

Antworten:

29

Wenn Sie Portabilität anstreben, beachten Sie, dass es verschiedene Versionen von mail(1)und gibt mailx(1). Es gibt einen POSIX- mailxBefehl, der jedoch nur sehr wenige Anforderungen erfüllt. Und keine der Implementierungen, die ich je gesehen habe, scheint Anhänge zu analysieren.

Möglicherweise haben Sie das mpack-Paket . Mit diesem munpackBefehl werden alle Teile einer MIME-Nachricht in separaten Dateien gespeichert. Anschließend müssen Sie nur die interessanten Teile speichern und den Rest bereinigen.

Es gibt auch eine Metamail . Ein Äquivalent von munpackist metamail -wy.

Gilles 'SO - hör auf böse zu sein'
quelle
Um das hinzuzufügen, wenn Sie auch den Text MIME-Teile der E-Mail extrahieren möchten, munpackverwenden Sie die Option '-t':munpack -t email_file
Pierz
Danke für die Info über metamail. Können Sie mir bitte bei dieser Frage weiterhelfen ?
George
13

Das beste Programm für diesen Zweck ist ripMIME.

Es extrahiert den Text und alle Anhänge:

https://pldaniels.com/ripmime/

GitHub: inflex / ripMIME

Andreas Rehm
quelle
4
sudo apt install ripmime funktioniert aber. Siehe auch linux.die.net/man/1/ripmime . Ich benutze dieses Programm; funktioniert super, keine abhängigkeiten außer libc6.
Unhammer
gutes Zeug, Metamail und Munpack sind auf Ubuntu nicht verfügbar, aber Ripmime ist und macht genau das, was man erwartet.
Diego
2
  • JA möglich

  • Dies ist WIE (Ressource von hier )

finde Verzeichnis mit Dateien | während die Datei gelesen wird; machen

erstelle tempdir und kopiere die datei dorthin

führe munpack auf file aus und kopiere die anhänge an eine andere stelle

zerstöre tempdir (Inhalt)

getan

subanki
quelle
Wenn jemand möchte, dass ich das Perl-Skript hier
einfüge,
1
wenn du so nett wärst (offensichtlich hinterlässt du die Zuordnung, wo du es gefunden hast :))
warren
1
Lies einfach das Drehbuch ... das ist eine Menge Perl!
Warren
Sie sind sicher, dass ich das in meine Antwort aufnehmen soll, es wird sehr lang werden.
Subanki
Hier nicht einfügen, in diesem Fall wäre es besser, von der Originalquelle zu kopieren :)
warren