簡體   English   中英

如何使用procmail以base 64編碼過濾電子郵件

[英]How to filter email with base 64 encoding using procmail

我正在嘗試使用base 64編碼過濾電子郵件,然后解碼郵件正文,然后將其傳遞以進行進一步過濾,但是找不到與郵件頭中的電子郵件類型匹配的內容,我嘗試了Content-Transfer-Encoding和Content-類型,但從標題中找不到匹配項。 這是我配置的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 -u -b | mmencode -u -b放在錯誤的位置。 您已將它作為要匹配的正則表達式的一部分-當然不會。

你可能是說

:0fw
* r@domain\.com
* ^Content-Transfer-Encoding:.*base64
| mmencode -u -b

或可能

:0
* r@domain\.com
{
    :0fw
    * ^Content-Transfer-Encoding:.*base64
    | mmencode -u -b
#...
}

Procmail配方的一般形式是

:0flags
* conditions
action

您可以省略條件以使配方無條件; 但是該操作是強制性的。 您不能忽略它。

如果更改了內容編碼,則還應該更新相應的MIME標頭(當然,除非您在處理完此消息后就放棄了此消息)。

還請注意,不需要(r|R)交替,因為Procmail默認情況下不區分大小寫地匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM