默认情况下postfix只记录收发件人双方地址等信息,可以通过修改配置来让maillog记录邮件主题 修改/etc/postfix/main.cf
header_checks = regexp:/etc/postfix/header_checks
修改/etc/postfix/header_checks
/^Subject: (.*)/ WARN
reload postfix后发封邮件可以在maillog里面看到如下信息
May 28 16:53:03 umail postfix/cleanup[37537]: 8525A613A8: warning: header Subject: testaaaa from unknown
May 28 17:23:36 umail postfix/cleanup[38676]: D2536613D1: warning: header Subject: =?GB2312?B?ztI=?= from unknown
May 28 17:47:14 umail postfix/cleanup[39771]: B32A3613D1: warning: header Subject: =?utf-8?B?6ICD6K+V?= from unknown
上面可以看到后面身份条中文主题是乱码,根据写邮件时的编码不同分别带有?GB2312?B?和?utf-8?B?的标记,可通过metamail 对其解码.默认没有安装,需要下载安装
[root@umail src]# wget http://repo.iotti.biz/CentOS/6/x86_64/metamail-2.7-30.lux.1.x86_64.rpm
[root@umail src]# rpm -ivh metamail-2.7-30.lux.1.x86_64.rpm
warning: metamail-2.7-30.lux.1.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 53e4e7a9: NOKEY
error: Failed dependencies:
/bin/csh is needed by metamail-2.7-30.lux.1.x86_64
csh is needed by metamail-2.7-30.lux.1.x86_64
sharutils is needed by metamail-2.7-30.lux.1.x86_64
[root@umail src]# yum install -y sharutils gromacs-csh
[root@umail src]# echo "suLK1LLiytQ=?="|mmencode -u;printf "\n"
测试测试
上面需要注意的时解码的时候需要将Subject: =?GB2312?B?ztI=?= 前面的?GB2312?B 和最后面的?=去掉,用中间的字符串进行解码.
[root@umail log]# echo "6ICD6K+V?= "|mmencode -u;printf "\n"
Warning: base64 decoder saw premature EOF!
考试
出现Warning: base64 decoder saw premature EOF! 一般是复制过来的内容不完整或者有多余字符导致的.这条就是多了后面?=导致的,删除?=后再解码正常.