如何从命令行查看电子邮件文件(位于 MailDir 中)?

如何从命令行查看电子邮件文件(位于 MailDir 中)?

我确信我曾经有过一种从命令行读取电子邮件文件的方法,这种方法非常简单,但现在我再也找不到它了。

我有 MailDir 格式的文件,我希望查看它们的内容(标头、正文(HTML/纯文本)、MIME 解码、可能提取附件)。这些不是我的电子邮件;这并不是说我想要一个能够为我获取、排序、发送邮件的 MUA——它们只是我需要检查的原始文件。

答案1

套餐邮件目录工具(至少在 Debian 中是这样称呼的)包含一个名为 的程序mu,它有一个很好的功能来显示 Maildir 邮件消息的内容。它仅显示标题、文本/纯文本部分以及附件列表。看手册页

例子:mu view /path/to/email-file

如果您有一封带有 MIME 的电子邮件text/htmlmu可以将其提取到一个单独的文件中:(默认情况下mu extract /path/to/email-file --parts=1输出到1.msgpart,假设 HTML 是第一部分。)

答案2

使用mutt -f /path/to/Maildir。或者mutt -R -f /path/to/Maildir如果你想让 mutt 以只读模式打开邮箱。

您正在考虑的命令行工具可能是MH又名消息处理系统,这是古老且未维护的,或者新MH仍在积极维护。

我不认为古代mh可以处理Maildir/邮箱,但nmh绝对可以。

nmh与 Debian 上的打包方式相同nmh,并且可能在大多数其他发行版上也是如此。

答案3

reformime是一个命令(来自maildropDebian/Ubuntu 上的软件包),可用于提取身体电子邮件文件的。

您可以获得 MIME 部分的列表,reformime -i <your-message其中包含类似的内容

section: 1
content-type: multipart/alternative
content-transfer-encoding: 8bit
charset: UTF-8
content-language: en-GB
starting-pos: 0
starting-pos-body: 2494
ending-pos: 75170
line-count: 1287
body-line-count: 1241

section: 1.1
content-type: text/plain
content-transfer-encoding: 8bit
charset: utf-8
starting-pos: 2578
starting-pos-body: 2666
ending-pos: 8180
line-count: 181
body-line-count: 178

section: 1.2
content-type: multipart/related
content-transfer-encoding: 8bit
charset: UTF-8
starting-pos: 8220
starting-pos-body: 8303
ending-pos: 75128
line-count: 1054
body-line-count: 1051

section: 1.2.1
content-type: text/html
content-transfer-encoding: 8bit
charset: utf-8
starting-pos: 8343
starting-pos-body: 8415
ending-pos: 25276
line-count: 343
body-line-count: 340

然后您可以提取一个部分,reformime -e -s 1.1例如这将提取纯文本版本(1.1)。同样,如果第 1.2.3 节是图像,您可以像这样查看它reformime -e -s 1.2.3 <mail.eml | display :-

因此,如果您只想查看纯文本版本,您可以使用方便的单行代码“轻松”完成:

F=/path/to/the-email-file
reformime -e -s $(reformime -i <$F | fgrep -B1 'content-type: text/plain' | head -n1 | cut -c 10- ) <$F

这不是我希望找到的简单选择,但我想无论如何都会记录下来!

相关内容