减小字体
增大字体
摘要:Procmail常用的选项 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 可以获得更加详细的信息
gadfly 回复于:2003-05-22 13:26:35呵呵,不知道和maildrop比,有什么优缺点。
能更详细点就好了。
bycd 回复于:2003-05-23 11:40:40[quote:37416c5abe="gadfly"]呵呵,不知道和maildrop比,有什么优缺点。
能更详细点就好了。[/quote:37416c5abe]
man procmailex
netloafer 回复于:2003-05-23 12:20:58呵呵,不错的文章……
|