1

Я ищу способ сохранить все вложения из папки IMAP с 3000+ отчетов DMARC, каждый из которых прикреплен внутри отдельных сообщений в виде файла .zip или .xml.gz . Я использую Claws Mail, у которого есть способ автоматизировать это (см. Примеры -> Сохранить) через munpack . К сожалению, в openSUSE Leap 42.3 (который я использую), похоже, нет пакета, предоставляющего munpack . После некоторых поисков в Интернете я нашел альтернативу: metamail -wy предложил в качестве ответа на этот вопрос .

Попытка этого непосредственно в когтях дала мне некоторую ошибку (как не использование программы должным образом). Поэтому я вручную сохранил одно сообщение во временном каталоге и попытался из консоли:

[/tmp/download]: metamail -yw msg
Date: Mon, 03 Nov 2014 10:13:53 +0000
Subject: Report domain: ████████ Submitter: ████████
From: noreply-dmarc-support@google.com
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)?

1 ответ1

1

Я не уверен, как на самом деле выглядят ваши данные, поэтому лучшее, что я могу сделать, - это некоторые образованные догадки.

В прошлом я успешно использовал metamail -q -w -x file_name в скриптах для извлечения вложений. Как вы можете видеть из man metamail , -w говорит metamail не обращаться к файлу mailcap, а просто извлекать вложения, -q говорит, что он тихий, потому что сценарии не любят дополнительный вывод, а -x говорит, что это определенно не работает на терминале, поэтому он не должен задавать глупые вопросы.

У вас уже есть -w , и вы также используете -y , что не нужно, если письмо правильно отформатировано, но, возможно, ваше нет - как я уже сказал, я не знаю, какие у вас данные. Страница man также предупреждает о странных эффектах, которые могут произойти с -y .

Таким образом , первое падение -y увидеть , если он все еще работает. Затем добавьте -x , посмотрите, перестанет ли он спрашивать. Наконец добавьте -q чтобы удалить нежелательный вывод.

редактировать

После обвинения в том, что я слишком ленив, чтобы попытаться, я сделал следующие шаги:

1) Отправил мне почтовый файл с одним пустым файлом, используя mutt . Вот полное письмо с некоторыми удаленными / отредактированными заголовками:

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) Как и ожидалось, metamail не запрашивает и сохраняет все части в виде двух файлов 1-M64bZlz и 1-MKfamEn . Второй - это zip-файл, первый - основной текст.

И сейчас? Это работает для меня, это не работает для вас.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .