Estrai / salva un allegato di posta usando bash


30

Utilizzando bashstrumenti normali (ad esempio, incorporati o strumenti da riga di comando comunemente disponibili), lo è

  • possibile e
  • Come

estrarre / salvare gli allegati nelle e-mail?

Ad esempio, supponiamo di avere un rapporto notturno che arriva via e-mail ma è un archivio zip di diversi file di registro. Voglio salvare tutte quelle zip in una directory di backup. Come lo farei?


"normali strumenti bash" - intendi usare solo le funzioni incorporate in bash (cioè ciò che troverai nella pagina man di bash) o intendi, più in generale, strumenti da riga di comando che potresti aggiungere ad uno script bash shell ?
Doug Harris,

@Doug Harris - o ... se posso chiamare maile fare questo, o salvare l'allegato altrimenti, va bene anche :)
Warren

Risposte:


29

Se stai puntando alla portabilità, fai attenzione che esistono diverse versioni di mail(1)e mailx(1). C'è un mailxcomando POSIX , ma con pochissimi requisiti. E nessuna delle implementazioni che ho sembra analizzare comunque gli allegati.

Potresti avere il pacchetto mpack . Il suo munpackcomando salva tutte le parti di un messaggio MIME in file separati, quindi tutto ciò che devi fare è salvare le parti interessanti e ripulire il resto.

C'è anche metamail . Un equivalente di munpackè metamail -wy.


Inoltre, se si desidera estrarre il testo parti MIME dell'email durante l'utilizzo, munpackutilizzare l'opzione '-t':munpack -t email_file
Pierz,

Grazie per le informazioni su metamail. Potete per favore aiutarmi con questa domanda ?
george


2
  • possibile

  • Questo è COME (risorsa da qui )

trova dir contenente file | durante la lettura del file; fare

crea tempdir e copia il file lì

esegui munpack su file e copia gli allegati altrove

destroy tempdir (contenuto)

fatto


Se qualcuno vuole che io incolli lo script Perl qui, lascia un commento
subanki,

1
se saresti così gentile (ovviamente lasciando l'attribuzione di dove l'hai trovata :))
warren,

1
basta leggere la sceneggiatura ... è un sacco di perl!
Warren,

quindi sei sicuro di volerlo includere nella mia risposta, diventerà molto lungo.
subanki,

non incollare qui, copiare dalla fonte originale sarebbe meglio in questo caso :)
warren,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.