我正在尝试为我的邮件服务器实施某种垃圾邮件报告。邮件按筛子排序,并且都在一个名为垃圾邮件的文件夹中。我用bash遍历文件夹。 有了这个,我从邮件中获得了必要的信息:
cat $f | grep '^From' | head -n1 >> $TMPFILE
cat $f | grep '^Subject' | head -n1 >> $TMPFILE
但在某些邮件中,主题的编码方式如下
主题:=?ISO-8859-1?Q?测试:_Jaguar_XKR-S:_Unter_dem_Blech_lauert_d?=
如何以正确的编码方式获取主题?我试图使用mail,mailx,mutt ......但是没有人能够简单地从文件中加载邮件。
答案 0 :(得分:1)
主题行中的编码看起来像MIME Words。解码数据的一种可能方法是编写使用MIME::Words模块的perl脚本。您可以将perl脚本设置为shell脚本,并从bash脚本中调用它。
convert_subject.sh:
#!/bin/sh
/usr/bin/perl -pe 'use MIME::Words(decode_mimewords); $_=decode_mimewords($_);'
使用脚本的示例:
$ echo "=?ISO-8859-1?Q?Test:_Jaguar_XKR-S:_Unter_dem_Blech_lauert_d?=" | sh convert_subject.sh
哪个输出:
Test: Jaguar XKR-S: Unter dem Blech lauert d