Procmail使用指南:规则、标志与操作详解
1. Procmail规则格式
Procmail规则遵循简单的格式,但可根据多种标志以及规则和配方的编写方式,以不同方式解释和执行规则中的指令。所有规则通常以:0开头,后面可跟一个或多个标志和指令。历史上,冒号后会跟一个数字来指定规则中的条件数量,但当前版本的Procmail会自动确定条件数量,因此总是使用值0。
2. 锁定机制
为防止多个进程同时写入同一文件,需要使用锁定机制。不过,此要求会因过滤器尝试调用的进程类型而异。
-自动锁定:以:0:开头的规则会应用自动文件锁定。Procmail会自动确定邮件要送达的文件名并创建锁定文件。若锁定文件已存在,它会等待一段时间后重试创建锁定。若最终创建成功,则继续处理;若无法创建,则报告错误并继续处理下一条规则。示例规则:
:0 <flags>:- 强制锁定:特别是在使用外部脚本处理邮件时,可能需要强制锁定。多数情况下,Procmail会通过检查进程命令行和输出指向位置来确定最终数据要写入的文件名。但如果脚本自行选择输出位置,或依赖可能被其他Procmail进程更改的文件,则需按以下方式明确请求锁定文件:
:0 <flags> :scri