【发布时间】:2015-08-17 22:36:31
【问题描述】:
我正在尝试使用 base 64 编码过滤电子邮件,然后解码邮件正文,然后将其传递以进行进一步过滤,但它不会从标题中找到与电子邮件类型匹配的内容,我尝试了 Content-Transfer-Encoding和 Content-Type,但从标头中找不到匹配项。 这是我配置的procmailrc:
DEFAULT=/var/mail/
LOGFILE=$HOME/procmail.log
SHELL=/bin/sh
msgID=""
errorMSG="Error."
:0
* (r|R)@domain.com
:0fw
* ^Content-Transfer-Encoding:.*base64 | mmencode -u -b
{
:0B
* ^()\/[a-z]+[0-9]+
{ msgID = "$MATCH" }
result=`mysql -uxxx -pxxx -e "select data from table1 where id='"$msgID"'`
....
【问题讨论】:
-
mmencode 不再可用。 base 64 解码现在是核心实用程序的一部分。使用
base64 --decode而不是mmencode -u -b。 -
为了匹配,请尝试在 * 前面不加点。
^Content-Transfer-Encoding: *base64。所以整行是:* ^Content-Transfer-Encoding: *base64 | base64 --decode -
您希望匹配的消息是什么样的?请edit该问题包含一个(小但有用的)示例。
-
DEFAULT的分配看起来也很可疑。你真的有权限在/var/mail写新文件吗?即使你愿意,你为什么要这样做?
标签: mysql email ubuntu procmail