将电子邮件(.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.mboxcat>>out.txt,如果您不关心标题,则可以将 替换为sed '1,/^$/d'>>out.txt

如果需要,请检查elinks手册页以了解如何将 HTML 调整为文本渲染。

答案2

Thunderbird 有一个附件可以做到这一点:导入导出工具。首先,您使用它导入松散的 .eml 文件,然后将它们导出到单个文本文件。效果很好。

相关内容