我在用着杂种狗处理我的邮件。有一个发件人声明了错误的内容类型。邮件到达时带有
Content-Type: multipart/alternative;
boundary=--…
并有两个部分。它们被声明为:
Content-Type: text/plain; charset=utf-8
和
Content-Type: text/html; charset=utf-8
但是邮件的两部分是相同的。所以明文部分和HTML部分一样充满了HTML标签。我试图与发件人讨论这个问题,但他们使用某种“企业”软件,无法更改这些设置。
所以我想在本地更改邮件,也许删除text/plain
- 部分或重写text/plain
为text/html
.
对于我的情况,您认为最好的方法是什么?我可以使用哪些工具来获得可读的邮件?
答案1
在 mutt 中,您可以键入v,然后选择要显示的替代项。您还可以使用 更改零件的内容类型Ctrl-E。
作为更通用的方法,您可以使用mutt
的display_filter
设置:
set display_filter=/path/to/mutt-filter
就像mutt-filter
这样:
#! /usr/bin/awk -f
BEGIN {
cmd="echo '[automatically converted from html to text]'; w3m -T text/html -dump"
}
{l=tolower($0)}
l ~ /<html|<!doctype html/,l ~ /<\/html>/ {
print | cmd
next
}
{close(cmd); print}
这将导致(在mutt
将要显示的内容中,而不是原始电子邮件中)<html>
和之间的任何内容</html>
通过w3m -T text/html -dump
(或elinks -dump
或您首选的html
转换text
器)。
由于这可能会转换它不应该做的事情(例如何时<html>
出现在真实text/plain
部分中),因此您可能需要对其进行调整,以便它仅对那些发送虚假电子邮件的人的电子邮件进行操作,或者使用一些甚至更奇特的方法,例如计算标签数量并在达到阈值时进行转换...