【问题标题】:Procmail: filter subcject then alter mail bodyProcmail:过滤主题然后更改邮件正文
【发布时间】:2015-05-05 12:15:06
【问题描述】:

我必须将邮件正文剪切到某个字符串以下。此外,消息是 base-64 编码的。这个食谱很好用:

:0fb
| base64 -d
:0fb
|sed '/string/,$d'
:0fb
| base64

Recipe 首先解码身体,做我需要的,然后编码回剩下的。 但是,如果我尝试添加一些过滤,它会以带有空正文的消息结尾:

:0
* ^Subject.*sometext
{
:0fb
|base 64 -d
:0fb
|sed '/string/,$d'
:0fb
|base 64
}

我错过了什么吗?

【问题讨论】:

    标签: procmail


    【解决方案1】:

    直接的问题是您在base64 -d 之前缺少一个竖线字符。

    但是,您可以轻松地将其折叠成一个动作。

    :0fb
    * ^Subject:.*sometext
    | base64 -d | sed '/string/,$d' | base64
    

    在 shell 管道中执行此处理有点没有吸引力,因为当过滤器是空操作时(即当 string 未在消息正文中编码时),确实没有办法避免过滤器。为了效率和优雅,您可能希望将其转换为简单的 Python(或您拥有的)脚本,如果您要过滤的字符串不存在,该脚本就会中止。

    【讨论】:

    • 嗯,我喜欢 bash 脚本 :) 在编辑我的帖子时管道字符丢失,已更正。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 2014-11-30
    • 1970-01-01
    • 2017-05-16
    • 2013-06-16
    • 2010-11-19
    • 1970-01-01
    相关资源
    最近更新 更多