
저는 3000개 이상의 DMARC 보고서가 포함된 IMAP 폴더의 모든 첨부 파일을 저장하는 방법을 찾고 있습니다. 각 보고서는 개별 메시지 안에 또는 .zip
파일 .xml.gz
로 첨부되어 있습니다. 나는 사용하고있다발톱 메일이는이것을 자동화하는 방법(예제 -> 저장 참조)부터 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: [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의 기능을 통해) 어떻게 사용할 수 있습니까 ?
답변1
가지고 있는 데이터가 실제로 어떻게 보이는지 잘 모르겠습니다. 따라서 제가 할 수 있는 최선은 경험에 근거한 추측입니다.
나는 metamail -q -w -x file_name
과거에 첨부 파일을 추출하기 위해 스크립트에서 성공적으로 사용했습니다. 에서 볼 수 있듯이 메타메일 man metamail
에 -w
mailcap 파일을 참조하지 말고 첨부 파일만 추출하라고 지시하고, -q
스크립트가 추가 출력을 좋아하지 않기 때문에 조용히 하라고 지시하고, -x
확실히 터미널에서 실행되지 않는다고 지시합니다. 어리석은 질문을 해서는 안 됩니다.
당신은 이미 을 가지고 있고 -w
또한 사용하고 있습니다 -y
. 메일의 형식이 적절하다면 필요하지 않을 것입니다. 그러나 아마도 당신의 것은 그렇지 않을 수도 있습니다. 제가 말했듯이, 나는 당신이 어떤 데이터를 가지고 있는지 모릅니다. 매뉴얼 페이지는 또한 -y
.
먼저 drop 을 실행하여 -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) 예상대로 메타메일은 묻지 않고 모든 부분을 1-M64bZlz
및 이라는 두 개의 파일로 저장합니다 1-MKfamEn
. 두 번째는 zip 파일이고 첫 번째는 본문 텍스트입니다.
그리고 지금? 그것은 나에게 효과가 있고 당신에게는 효과가 없습니다.
답변2
- ripmime은 이메일에서 첨부 파일을 추출하는 데 정말 좋은 유틸리티입니다(저는 procmail에서 호출되는 스크립트를 사용합니다).
2a) 정말로 munpack을 사용하고 싶다면 이전 릴리스의 패키지 관리 파일에 있는 바이너리를 사용할 수 있습니다. 예를 들어 CentOS-7에서 munpack이 필요했지만 mpack용 rpm을 찾을 수 없어서 rpmfinder를 사용하여 이 "mpack-1.6-2.el6.rf.x86_64.rpm"을 다운로드한 다음 이 명령을 사용하여 내용의 압축을 풀었습니다.
rpm2cpio mpack-1.6-2.el6.rf.x86_64.rpm | cpio -idmv
(빈 하위 폴더에서 이 작업을 수행할 수 있습니다. 파일을 찾으려면 tree를 사용하세요. 내 파일은 .usr/bin 아래에 있었습니다.)
2b) munpack-1.6에는 더 나은 텍스트 추출을 수행하기 위한 문서화되지 않은 스위치 "-t"가 있습니다("-?"를 사용할 때는 표시되지 않음).