对编程熟悉的朋友一看就知道这个文件的参数和变量是可以根据需要而改动的。其中ORGMAIL变量是设定邮件目录在系统中全局变量的。以上的清单表明ORGMAIL已经把用户登陆目录指定为 /var/spool/mail/,$LOGNAME 就是用户的登陆名。MAILDIR 一看就知道是指定了当前procmail使用和执行的目录所在。上面的清单说明了MAILDIR是ROOT用户的HOME目录。
前面已经说过了,procmail是一个强大的反垃圾邮件的程序。只要修改它其中参数它就会起相应的作用。如果我们不像把所有从bgates@microsoft.com 来的邮件直接送到/dev/null目录中,我们像把这些邮件留下来有时间来仔细分析是否它们都是垃圾邮件,那么我们可以进行以下的配置:
:0 * ^From.*bgates@microsoft.com { :0 antitrust }
这样,从bgates@microsoft.com 发过来的电子邮件就会被保存到一个叫做antitrust的目录中,当然,那必须要通过修改MAILDIR变量才能生效。为了使得从bgates@microsoft.com 发过来的电子邮件被Linux系统保存的更好,我们还可以进一步进行修改,例如:
:0 * ^From.*bgates@microsoft.com { :0 mail/antitrust }
这样,antitrust就不必使用$HOME/mail目录,安全系数就要比原来的修改方式要高一些。您想过虑的垃圾邮件和您的正常邮件就不会放在同样的一个目录中了。如果把要过虑的垃圾电子邮件和有用的邮件都放在/ROOT目录中是不够安全的。
以上只是介绍了过虑发邮件地址的方法,现在我们还可以把过虑地址和过虑主题等多种方式结合起来使用,那样过虑垃圾电子邮件的效果会更好一些,下面就是多种方法结合过虑垃圾邮件的方法:
:0 * ^From.*bgates@microsoft.com * ^Subject:.*competition { :0 mail/antitrust }
从上面的清单可以看出,我们这次不但可以过虑掉来自bgates@microsoft.com 的电子邮件,而且只要电子邮件中带有“competition”字样的主题邮件也被过虑掉了。当然,根据实际需要,用户可以设定过虑的电子邮件的主题,不仅仅限制与competition这个单词。符合以上条件的电子邮件将被送入mail/antitrust 这个指定的区域。有时候我们需要转发某些电子邮件,这时候我们也可以通过以下配置来完成:
:0 * ^From.*bgates@microsoft.com * ^Subject:.*competition { :0 c ! justicedept@us.gov :0 mail/antitrust }
从以上清单可以知道,来自bgates@microsoft.com并且带有"competition" 的电子邮件就会被Linux系统转寄到justicedept@us.gov,然后这些邮件也被送到mail/antitrust中。还有以下这样的配置也非常实用:
:0 * ^From.*bgates@microsoft.com * ^Subject:.*competition { :0 c ! justicedept@us.gov :0 mail/antitrust } :0 * ^From.*sexcity { :0 /dev/null }
第一行参数很好理解,第二行则是把来自sexcity的邮件送到/dev/null中。从上面那么多个配置清单中我们可以看到要配置procmail不是一件困难的事情,但是您还是要注意,如果您在配置procmail的时候出了错,那么您可能会破坏掉整个系统中的电子邮件配置,配置好procmail后不要忘记对系统进行测试。
最后要提醒大家的是,procmail尽管是一个强大的反垃圾邮件的程序,但是我们也要遵循Sendmail的基本原则,不能随便修改procmail的参数,不然您的Linux发送邮件的系统可能不能正常工作,如果您在配置反垃圾邮件方面遇到了问题,请到Sendmail的主页上查看FAQ,那里有许多解决此类问题的办法。