Ekstrak / simpan lampiran surat menggunakan bash

30

Menggunakan bashalat normal (yaitu, built-in atau alat baris perintah yang tersedia secara umum), itu

  • mungkin, dan
  • bagaimana

untuk mengekstrak / menyimpan lampiran pada email?

Misalnya, saya punya laporan malam yang datang melalui email tetapi merupakan arsip zip dari beberapa file log. Saya ingin menyimpan semua ritsleting ke direktori cadangan. Bagaimana saya mencapai itu?

warren
sumber
"alat bash normal" - maksud Anda hanya menggunakan fungsi yang dibangun dalam bash (yaitu apa yang akan Anda temukan di halaman bash man) atau maksud Anda, secara umum, alat baris perintah yang dapat Anda tambahkan ke skrip bash shell ?
Doug Harris
@Doug Harris - baik .. jika saya bisa menelepon maildan melakukan ini, atau menyimpan lampiran juga, itu baik-baik saja :)
warren

Jawaban:

29

Jika Anda bertujuan untuk portabilitas, berhati-hatilah karena ada beberapa versi mail(1)dan mailx(1). Ada mailxperintah POSIX , tetapi dengan sedikit persyaratan. Dan tidak satupun implementasi yang saya miliki untuk mengurai lampiran.

Anda mungkin memiliki paket mpack . Its munpackperintah menyimpan semua bagian pesan MIME dalam berkas terpisah, maka yang harus Anda lakukan adalah menyimpan bagian yang menarik dan membersihkan sisanya.

Ada juga metamail . Setara dengan munpackis metamail -wy.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Juga untuk menambahkan bahwa jika Anda ingin juga mengekstrak teks bagian MIME dari email saat menggunakan munpackkemudian gunakan opsi '-t':munpack -t email_file
Pierz
Terima kasih atas info tentangnya metamail. Bisakah Anda membantu saya dengan pertanyaan ini ?
george
13

Program terbaik untuk tujuan ini adalah ripMIME.

Itu mengekstrak teks dan semua lampiran:

https://pldaniels.com/ripmime/

GitHub: inflex / ripMIME

Andreas Rehm
sumber
4
sudo apt install ripmime bekerja sekalipun. Lihat juga linux.die.net/man/1/ripmime . Saya menggunakan program ini; berfungsi dengan baik, tidak ada dependensi kecuali libc6.
Unhammer
barang bagus, metamail dan munpack tidak tersedia di Ubuntu tetapi ripmime adalah dan melakukan persis apa yang diharapkan.
Diego
2
  • YA mungkin

  • Ini CARA (Sumber dari sini )

temukan dir yang berisi file | saat membaca file; melakukan

buat tempdir dan salin file di sana

jalankan munpack pada file dan salin lampiran di tempat lain

menghancurkan tempdir (konten)

selesai

subanki
sumber
Jika ada yang ingin saya tempel skrip Perl di sini maka tinggalkan komentar
subanki
1
jika Anda akan sangat baik (jelas meninggalkan atribusi tempat Anda menemukannya :))
warren
1
baca saja skripnya ... itu banyak perl heckuva!
warren
jadi Anda yakin Anda ingin saya memasukkan itu pada jawaban saya, itu akan menjadi sangat panjang.
subanki
jangan tempel di sini, menyalin dari sumber asli akan lebih baik dalam hal ini :)
warren