Procmail常用的选项

范堡 发布于 2009/05/05 16:57
阅读 511
收藏 0

Procmail是一个自动化的mail处理过虑程序,在linux上已经作为sendmail 
缺省的本地邮递器,因此可以直接使用他而不需要什么其他特别的配置. 
如果你使用的还是sendmail+binmail,可以使用.forward文件,在其中加 
入 
| /usr/bin/procmail 
及可. 

procmail主要依靠~/.procmailrc中的信息来处理邮件. 
如果这个配制文件不存在,则procmail只是简单的将邮件 
保存到用户的缺省信箱中. 

首先简单介绍一下正则表达式. 
正则表达式,称为常规表达式,用于描述字符模式.procmail 
用其进行字符串匹配判断.常规表达式的基本语法有 
^ 行首 
$ 行尾 
( ) 聚合元素 
(...|...|...) 或,可选项之一进行匹配 
如:(abc|dev|ghi)可以匹配abc,dev,ghi 
[...] 封闭集中匹配一个字符 
如:[abcde]可以匹配a,b,c,d,e 
[^...] 求补集中匹配一个字符 

+ 一次或多次模式 
如:aba+匹配aba,abaa...不匹配ab 
- 最多一次模式 
如:aba-匹配ab,aba,不匹配abaa,abaaa.... 
* 零次或多次模式 
如:aba*匹配ab,aba,abaa,abaaa...... 
. 匹配任意字符 

{n,m} 进行n-m次匹配 
{n} 进行n次匹配 
{n,} 进行至少n此匹配 

\s 空白符 
\S 非空白符 
\d 数字 
\d 非数字 
\w 字母或数字 
\w 非字母和数字 

procmail使用与egrep相同的正则表达式,缺省时忽略大小写. 

下面来看几个简单的例子 

将所有来自peter标题含有computer的信转发给william 
同时在本地留一个保存一个备份在文件petcomp中 
:0 
* ^From:.*peter 
* ^Subject:.*computer 

:0 c 
! william@somewhere.edu 

:0 
petcomp 


这个也等价于 
:0 c 
* ^From:.*peter 
* ^Subject:.*computer 
! william@somewhere.edu 

:0 A 
petcomp 

规则的一般格式是: 
:0 [flages] [:[locallockfile]] 
<零个或多个条件,每个一行>; 
<动作命令>; 

:0是规则开始, 后面可以跟一些单字符选项.接着就是用*开头的正则表达式条件. 
procmail用内置的egrep对邮件首部进行搜索,如果满足所有条件则执行最后 
的命令,命令行{}表示复和语句,!表示要转信(forwarding),|表示要执行程序, 
邮件通过标准输入传递给程序.如果命令是文件名,则procmail直接将邮件存 
入该文件中 

下面是常用的选项: 
H 搜索匹配邮件头部 
B 搜索匹配整个邮件 
D 匹配时区分大小写 
A 如果前面最近的一个没有A或a选项的规则执行,则本规则有效 
a 如果上面一条规则执行,则本规则有效 
E 同A相反,前面最近的没有E或e选项的规则没有执行,则本规则有效 
e 同a相反 
h 通过管道传送邮件首部(缺省) 
b 通过管道传送邮件主体(缺省) 
c 产生一个复制 
I 忽略所有写操作中的错误 
r 源始模式,及procmail不对mail进行任何模式的处理 

以上只是Procmail的简单介绍, 
man procmail 
man procmailrc 
man procmailex 
可以获得更加详细的信息



加载中
返回顶部
顶部