红联Linux门户
Linux帮助

Linux中把email一一都filter吧

发布时间:2007-08-19 00:21:37来源:红联作者:eaxbiopl
利用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就可以了.
文章评论

共有 0 条评论