从“content-disposition: attachment”主体部分解码base64



我正试图使用procmail提取消息体,无论是在消息中还是在附件中,但我从下面得到了前两个字符:

:0B
* ^()[a-z]+[0-9]+[^+]
{ msgID = "$MATCH" }
:0B
* ^Content-Disposition: *attachment.*(($)[a-z0-9].*)*($)($)/[a-z]+[0-9]+
| base64 --decode
{ msgID = "$MATCH" }

base64的解码不工作,它要么不匹配作为整个条件,要么分配LASTFOLDER=base64 --decode"

参见我之前的问题

一个菜谱上不能有两个操作。这里有

:0B
* ^stuff/more stuff
{ msgid="$MATCH" }
| base64 --decode

第二行是语法错误。我猜你的意思是像

:0B
* ^stuff/more stuff
{
     msgid="$MATCH"
     :0
     | base64 --decode
}
看到了

?如果您需要多个操作,请在另一组食谱周围添加一对大括号(不要忘记最后的结束大括号!)作为操作部分。也可以参见http://www.iki.fi/era/procmail/quickref.html

但是在您的情况下,您显然想要提取已解码的令牌base64,因此您正在寻找的代码将是

:0B
* ^Content-Disposition: *attachment.*(($)[a-z0-9].*)*($)($)/[a-z]+[0-9]+
{ msgID=`echo "$MATCH" | base64 --decode` }

还要注意,等号周围不能有空格。对于任意base64,正则表达式是不正确的;加号和斜杠也是允许使用的字符,等号位于末尾。将/后的部分改为[a-z0-9/+]+=*

相关内容

  • 没有找到相关文章

最新更新