利用Linux系统,放到email server前端,把所有进来或寄出的邮件都过滤,安着你的需要而处理,如备份,扫描病毒,删除等.
系统需求:
一部能运行linux之pc
Linux os (如Fedora C6)
sendmail
sendmail-cf
procmail
安装:
先安装Linux os,然后安装sendmail, sendmail-cf及procmail.
sendmail用于接收email及送出
sendmail-cf用于便改设定sendmail
procmail用于过滤邮件
更改设定:
修改档案/etc/mail/sendmail.mc
找出dnl DAEMON_OPTIONS('Port=smtp,Addr=127.0.0.1, Name=MTA')
改成dnl DAEMON_OPTIONS('Port=smtp, Name=MTA')
在档案再加上
LOCAL_CONFIG
# Add .PROCMAIL to the pseudo-domain list
CP.PROCMAIL
LOCAL_RULE_0
# Strip .PROCMAIL and send via esmtp
R$+ < @ $+ .PROCMAIL . > $#esmtp $@ $2 $: $1<@$2>
然后用m4去更新sendmail.cf
m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
修改档案/etc/mail/access,增加
Connect:192.168.0.2 RELAY
把192.168.0.2改为你email server的IP
然后用makemap去更新access.db
makemap hash access.db < access
修改档案/etc/mail/mailertable,增加
. procmail:/etc/procmailrcs/filter
然后用makemap去更新mailertable.db
makemap hash mailertable.db < mailertable
建立档案/etc/mail/relay-domains,增加你要处理的email domain,如
abc.com
xyz.com
建立文件夹/etc/procmailrcs及建立档案filter
mkdir /etc/procmailrcs
touch /etc/procmailrcs/filter
把selinux关掉
修改档案/etc/sysconfig/selinux
把SELINUX=enforcing改成SELINUX=disabled
把firewall关掉
chkconfig iptables off
reboot伺服器以应用新设定.
过滤设定:
透过修改/etc/procmailrcs/filter档案去设立你所需的过滤方案.
For example:
LOGFILE=/var/log/procmail
VERBOSE=on
:0
* ^Received: from.*192.168.0.2
{
:0
* ^Subject:.testing
! admin@abc.com.PROCMAIL
}
第一,二行是设定log file,方便检查系统操作正常与否.
* ^Received: from.*192.168.0.2是要确定要否处理这个从email server来的邮件(从email server来的邮件表示这是寄出的邮件)
如要处理进来的邮件,只要在^前加上!就可以了,如* !^Received: from.*192.168.0.2
当中所有email address都要加上.PROCMAIL.使系统能辨别邮件是否要处理.因为你这里所发出的邮件已经经过过滤,如不加上便会再一次过滤而产生问题.
如要转发邮件,可按example去做,如! admin@abc.com.PROCMAIL,如要删除,只要把它修改成/dev/null就可以了.

