3000以上のDMARCレポートを含むIMAPフォルダーからすべての添付ファイルを保存する方法を探しています。各レポートは個々のメッセージ内に.Zip
または.xml.gz
ファイルとして添付されています。 Claws Mail を使用しています これを自動化する方法 (例->保存を参照)からmunpack
まで。残念ながら、openSUSE Leap 42.3(私が使用している)には、munpack
を提供するパッケージがないようです。いくつかのウェブ検索の後、私は代替案を見つけました:metamail -wy
は この質問 への答えとして提案されました。
それを爪で直接試してみると、(プログラムを適切に使用していないため)エラーが発生しました。そこで、一時ディレクトリに1つのメッセージを手動で保存し、コンソールから試しました。
[/tmp/download]: metamail -yw msg
Date: Mon, 03 Nov 2014 10:13:53 +0000
Subject: Report domain: ████████ Submitter: ████████
From: [email protected]
To: ████████
This message contains data in an unrecognized format, application/Zip,
which can either be viewed as text or written to a file.
What do you want to do with the application/Zip data?
1 -- See it as text
2 -- Write it to a file
3 -- Just skip it
2
Please enter the name of a file to which the data should be written
(Default: ████████.Zip) >
Wrote file ████████.Zip
言い換えれば、それ自体は機能しますが、個々のメッセージごとにインタラクティブな入力が必要です。3000以上のメールのオプションではありません。
私の質問は:
インタラクティブな入力を必要としない方法でmetamail
を使用して、反復できるようにするにはどうすればよいですか(たとえば、スクリプト内またはClaws Mailの機能を通じて)?
あなたが持っているデータが実際にどのように見えるかはわかりませんので、私ができる最善のことは、知識に基づいた推測です。
過去にスクリプトでmetamail -q -w -x file_name
を使用して、添付ファイルを抽出しました。 man metamail
からわかるように、-w
はmetamailにmailcapファイルを参照せず、添付ファイルを抽出するように指示します。スクリプトは余分なものを好まないため、-q
は静かにするように指示します。出力、および-x
は、端末で実行されていないことを示しているため、愚かな質問をするべきではありません。
あなたはすでに-w
を持っていて、-y
も使用しています。これは、メールが適切にフォーマットされている場合は必要ないはずですが、おそらくあなたのものではありません-私が言ったように、私は何を知りませんあなたが持っているデータ。マニュアルページでは、-y
で発生する可能性のある奇妙な影響についても警告しています。
したがって、最初に-y
をドロップして、それがまだ機能するかどうかを確認します。次に、-x
を追加して、要求が停止するかどうかを確認します。最後に-q
を追加して、不要な出力を削除します。
編集
怠惰すぎて試すことができないと非難された後、私は次の手順を実行しました。
1)mutt
を使用して、1つの空のファイルを含むZipファイルを自分にメールで送信しました。いくつかのヘッダーが削除/編集された完全なメールは次のとおりです。
From mail Sat Mar 3 12:49:13 2018
Envelope-to: <dirk@...>
...
Message-ID: <20180303114913.xr7xvpx2pso6wurn@feanor>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="gsrhzrdopn4ddt7t"
Content-Disposition: inline
User-Agent: NeoMutt/20170609 (1.8.3)
Content-Length: 480
Lines: 18
--gsrhzrdopn4ddt7t
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Test
--gsrhzrdopn4ddt7t
Content-Type: application/Zip
Content-Disposition: attachment; filename="foo.Zip"
Content-Transfer-Encoding: base64
UEsDBAoAAAAAALplY0wAAAAAAAAAAAAAAAAHABwAenp6L2Zvb1VUCQAD8IqaWvCKmlp1eAsA
AQToAwAABOgDAABQSwECHgMKAAAAAAC6ZWNMAAAAAAAAAAAAAAAABwAYAAAAAAAAAAAApIEA
AAAAenp6L2Zvb1VUBQAD8IqaWnV4CwABBOgDAAAE6AMAAFBLBQYAAAAAAQABAE0AAABBAAAA
AAA=
--gsrhzrdopn4ddt7t--
2)それをyyy
というメールボックスに保存し、実行しました
METAMAIL_TMPDIR=. metamail -q -x -w ~/Mail/yyy
3)予想通り、メタメールは要求せず、すべての部分を1-M64bZlz
と1-MKfamEn
という2つのファイルとして保存します。 2番目はZipファイルで、最初は本文です。
そして今?それは私のために働きます、それはあなたのために働きません。