Витягнути / зберегти вкладення пошти за допомогою bash


30

Використовуючи звичайні bashінструменти (тобто вбудовані або загальнодоступні інструменти командного рядка)?

  • можливо, і
  • як

витягнути / зберегти вкладення в електронних листах?

Наприклад, скажіть, що у мене є нічний звіт, який надходить електронною поштою, але це zip-архів декількох файлів журналів. Я хочу зберегти всі ці зіпси в резервній папці. Як я це досяг?


"звичайні інструменти bash" - ти маєш на увазі використання лише функцій, вбудованих у bash (тобто те, що ти знайдеш на сторінці bash man), чи ти маєш на увазі, загалом, інструменти командного рядка, які можна додати до скрипту bash shell ?
Дуг Харріс

@Doug Harris - або .. якщо я можу зателефонувати mailі зробити це, або зберегти вкладення іншим чином, це теж добре :)
warren

Відповіді:


29

Якщо ви прагнете переносимості, пам’ятайте, що існує кілька різних версій mail(1)і mailx(1). Існує команда POSIX mailx, але з дуже маленькими вимогами. І жодна з реалізацій, які я, здається, все-таки розбирає вкладення.

Можливо, у вас є пакет mpack . Його munpackкоманда зберігає всі частини MIME-повідомлення в окремі файли, тоді все, що вам потрібно зробити, це зберегти цікаві частини та очистити решту.

Там також метамайли . Еквівалент munpackє metamail -wy.


Додамо також, що якщо ви також бажаєте витягти текстові частини MIME частини електронної пошти під час використання, munpackвикористовуйте опцію '-t':munpack -t email_file
Pierz

Дякуємо за інформацію про metamail. Чи можете ви мені допомогти вирішити це питання ?
Джордж

13

Найкраща програма для цієї мети - ripMIME.

Він витягує текст і всі вкладення:

https://pldaniels.com/ripmime/

GitHub: inflex / ripMIME


4
sudo apt install ripmime працює, хоча. Дивіться також linux.die.net/man/1/ripmime . Я використовую цю програму; працює чудово, ніяких залежностей, крім libc6.
unhammer

хороші речі, метамайли та munpack не доступні на Ubuntu, але функція ripmime є і робить саме те, що очікувалося.
Дієго

2
  • ТАК можливий

  • Це ЯК (ресурс звідси )

знайти файли, що містять файли | під час читання файлу; робити

створити там tempdir та скопіювати файл

запустіть munpack у файлі та скопіюйте вкладення в інше місце

знищити tempdir (вміст)

зроблено


Якщо хтось хоче, щоб я
вставив

1
якщо ти будеш таким добрим (очевидно, залишаючи атрибуцію того, де ти його знайшов :))
warren

1
просто читайте сценарій ... це геккува багато перла!
warren

тож ви впевнені, що хочете, щоб я включив це у свою відповідь, це стане дуже довгим.
субанки

Не вставляйте сюди, краще копіювати з початкового джерела в цьому випадку :)
warren
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.