이메일(.eml 파일)을 일반 텍스트로 내보내기/변환

이메일(.eml 파일)을 일반 텍스트로 내보내기/변환

오래된 이메일 아카이브가 있는데 이를 하나의 큰 텍스트 파일로 병합하고 싶습니다. 가능합니까? 이메일을 보고 콘텐츠를 잘라내어 붙여넣었을 때 정확히 내가 원하는 것을 얻었음을 알았습니다. 모든 서식이 사라졌고 읽을 수 있는 텍스트 파일이 있었고 모든 메타데이터와 모든 HTML 콘텐츠가 사라졌습니다. "html2text"를 보았지만 제거할 것이라고 생각했지만 모든 태그를 유지합니다. 보기, 잘라내기, 붙여넣기가 가능하지만 시간이 오래 걸립니다.

그런데, 중요한 경우에는 Thunderbird를 사용하겠습니다. 나는 이것을 프로그램에서 할 수 없을 것이라고 생각합니다. 그것은 내가 기대하는 명령줄 유틸리티일 것입니다.

답변1

스크립트 솔루션은 다음을 사용합니다.

  • formail(보너스 procmail) 이메일을 편지함 형식으로 변환
  • mutt무언극 내용 해독
  • elinks다른 옵션 없이 text/plain이메일용 HTML을 텍스트로 변환
  • zsh배치를 조정하고 eml현재 작업 디렉터리 및 그 아래에서 파일을 찾습니다.
#! /bin/zsh -
MAILCAPS==(
print 'text/html; /usr/bin/elinks -force-html -dump %s; copiousoutput'
) mutt -F =(<<'EOF'
set pipe_decode
set pipe_split
alternative_order text/plain text
unset wait_key
auto_view text/html
push "<tag-pattern>~A<enter><tag-prefix-cond><pipe-message>formail>>out.mbox<enter><exit>"
EOF
) -f =(for f (**/*.eml(n.)) formail < $f) > /dev/null

텍스트가 out.mbox파일에 추가됩니다. 파일은 여전히 ​​대부분의 메일 사용자 에이전트(Thunderbird에 대해서는 확실하지 않음)에 의해 메일 폴더로 열 수 있으며 대부분의 헤더가 제거된 일반 텍스트여야 합니다.

파일이 메일박스 형식인지 상관없으면 formail>>out.mbox로 바꾸면 되고 cat>>out.txt, 헤더가 상관없으면 로 바꾸면 됩니다 sed '1,/^$/d'>>out.txt.

필요한 경우 elinks매뉴얼 페이지를 확인하여 HTML을 텍스트 렌더링에 적용하는 방법을 알아보세요.

답변2

Thunderbird에는 다음과 같은 추가 기능이 있습니다.도구 가져오기 및 내보내기. 먼저 이를 사용하여 느슨한 .eml 파일을 가져온 다음 단일 텍스트 파일로 내보냅니다. 좋은 결과.

관련 정보