安装spam

      spam(SpamAssassin)利用perl来进行文字分析,他会检测邮件的标题、内容、送信人,这样就可以过滤出垃圾邮件

1、安装spam。由于spam的依赖太多,用户一定要使用yum源来安装,这样减少不必要的麻烦 


​[root@localhost ~]# rpm -qa | grep spamassassin

​[root@localhost openwebmail]# yum install -y spamassassin

​Complete!​



2、配置postfix使用spam功能,修改配置文件“/etc/postfix/master.cf”


​[root@localhost ~]# gedit /etc/postfix/master.cf

smtp      inet  n      -       n       -      -       smtpd  -o content_filter=spamassassin

spamassassin unix - n n  - - pipe user=nobody argv=/usr/bin/spamc -f /usr/sbin/sendmail -oi -f $(sender) -- $(recipient)  //​​追加到最后一行



3、重启postfix 


​[root@localhost openwebmail]# service postfix restart

​关闭​​​​postfix​​​​:​​​​                                            [​​​​确定​​​​]​

​启动​​​​postfix​​​​:​​​​                                            [​​​​确定​​​​]​

​[root@localhost openwebmail]#​



4、启动spam服务


​[root@localhost ~]# service spamassassin start

​启动​​​​spamassassin​​​​:​​​​                                            [​​​​确定​​​​]​

​[root@localhost ~]#​



5、测试垃圾邮件

1)spamassassin为我们提供了一个垃圾邮件的模板“sample-spam.txt”,我们可以使用此模板的内容来发送


​[root@localhost openwebmail]# cat /usr/share/doc/spamassassin-3.3.1/sample-spam.txt 

​Subject: Test spam mail (GTUBE)​

​Message-ID: <GTUBE1.1010101@example.net>​

​Date: Wed, 23 Jul 2003 23:30:00 +0200​

​From: Sender <sender@example.net>​

​To: Recipient <recipient@example.net>​

​Precedence: junk​

​MIME-Version: 1.0​

​Content-Type: text/plain; charset=us-ascii​

​Content-Transfer-Encoding: 7bit​


​This is the GTUBE, the​

​    Generic​

​    Test for​

​    Unsolicited​

​    Bulk​

​    Email​

​If your spam filter supports it, the GTUBE provides a test by which you​

​can verify that the filter is installed correctly and is detecting incoming​

​spam. You can send yourself a test mail containing the following string of​

​characters (in upper case and with no white spaces and line breaks):​


XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X      //​​这就是垃圾邮件的内容


​You should send this test mail from an account outside of your network.​


2)使用openwebmail发信

        Linux服务器---邮件服务spam_spam 

3)查看邮箱的日志文件。Spam采用积分制,默认超过5分就是垃圾邮件,而我们看到下面识别出的邮件是999分,很明显是垃圾邮件


​[root@localhost openwebmail]# cat /var/log/maillog

​Aug 21 08:44:14 localhost spamd[6401]: spamd: failed to create readable default_prefs: //.spamassassin/user_prefs​

​Aug 21 08:44:14 localhost spamd[6401]: spamd: processing message <20180821004332.M42441@mailsrv.david.cn> for nobody:99​

​Aug 21 08:44:26 localhost spamd[6401]: spamd: identified spam (999.0/5.0) for nobody:99 in 12.5 seconds, 603 bytes.​

​Aug 21 08:44:26 localhost spamd[6401]: spamd: ​

​result: Y 999 – ​

​ALL_TRUSTED,GTUBE,TVD_SPACE_RATIO scantime=12.5,size=603,user=nobody,uid=99,required_score=5.0,rhost=localhost,raddr=127.0.0.1,​

​rport=33149,mid=<20180821004332.M42441@mailsrv.david.cn>,autolearn=no​

​Aug 21 08:44:26 localhost postfix/pipe[6443]: 3F2FD14141A: to=<david@mailsrv.david.cn>,​

​relay=spamassassin, delay=13, delays=0.06/0.03/0/12, dsn=2.0.0, status=sent (delivered via spamassassin service)​

​Aug 21 08:44:26 localhost postfix/qmgr[6368]: 3F2FD14141A: removed​

​Aug 21 08:44:26 localhost spamd[6399]: prefork: child states: II​