bashを使用してメールの添付ファイルを抽出/保存する


30

通常のbashツール(つまり、ビルトインまたは一般的に利用可能なコマンドラインツール)を使用して、それは

  • 可能、そして
  • どうやって

メールの添付ファイルを抽出/保存するには?

たとえば、電子メールで到着するが、いくつかのログファイルのzipアーカイブである夜間レポートがあるとします。これらすべてのzipをバックアップディレクトリに保存したいです。どうすればそれを達成できますか?


「通常のbashツール」-bashに組み込まれている関数(つまり、bashのmanページにあるもの)のみを使用することを意味しますか、それとも、bashシェルスクリプトに追加できるコマンドラインツールを意味しますか?
ダグ・ハリス

@Doug Harris-呼び出しmailてこれを行うか、添付ファイルを保存することができれば、それでも問題ありません:)
ウォーレン

回答:


29

移植性を目指している場合は、mail(1)およびのいくつかの異なるバージョンがあることに注意してくださいmailx(1)。POSIX mailxコマンドがありますが、要件はほとんどありません。そして、とにかく添付ファイルを解析する実装はありません。

mpackパッケージがあるかもしれません。このmunpackコマンドは、MIMEメッセージのすべての部分を個別のファイルに保存します。その後、必要なことは、興味深い部分を保存し、残りをクリーンアップするだけです。

metamailもあります。に相当するのmunpackmetamail -wyです。


またmunpack、使用するときに電子メールのテキストMIME部分も抽出する場合は、「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以外の依存関係はありません。
アンハンマー

良いもの、メタメール、およびmunpackはUbuntuでは利用できませんが、ripmimeはまさに期待どおりのものです。
ディエゴ

2
  • はい可能

  • これがHOWここからのリソース)

ファイルを含むディレクトリを見つける| ファイルの読み取り中。行う

tempdirを作成し、そこにファイルをコピーします

ファイルでmunpackを実行し、別の場所に添付ファイルをコピーします

tempdirの破棄(コンテンツ)

やった


誰も私がここでPerlスクリプトを貼り付けたい場合は、単にコメントを残す
subanki

1
あなたがとても親切なら(明らかにあなたがそれを見つけた場所の帰属を残す:))
ウォーレン

1
スクリプトを読んでください...それはheckuvaのperlです!
ウォーレン

そのため、それを私の答えに含めてほしいと確信しています。それは非常に長くなります。
スバンキ

ここに貼り付けないでください。この場合、元のソースからコピーする方が良いでしょう:)
ウォーレン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.