将传入邮件从 text/plain 修改为 text/html

将传入邮件从 text/plain 修改为 text/html

我在用着杂种狗处理我的邮件。有一个发件人声明了错误的内容类型。邮件到达时带有

Content-Type: multipart/alternative;
  boundary=--…

并有两个部分。它们被声明为:

Content-Type: text/plain; charset=utf-8

Content-Type: text/html; charset=utf-8

但是邮件的两部分是相同的。所以明文部分和HTML部分一样充满了HTML标签。我试图与发件人讨论这个问题,但他们使用某种“企业”软件,无法更改这些设置。

所以我想在本地更改邮件,也许删除text/plain- 部分或重写text/plaintext/html.

对于我的情况,您认为最好的方法是什么?我可以使用哪些工具来获得可读的邮件?

答案1

在 mutt 中,您可以键入v,然后选择要显示的替代项。您还可以使用 更改零件的内容类型Ctrl-E

作为更通用的方法,您可以使用muttdisplay_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部分中),因此您可能需要对其进行调整,以便它仅对那些发送虚假电子邮件的人的电子邮件进行操作,或者使用一些甚至更奇特的方法,例如计算标签数量并在达到阈值时进行转换...

相关内容