CentOS 6 已經EOL,所以要增加yum repository
1. cd /etc/yum.repos.d/
2. sed -i 's|#baseurl=http://mirror.centos.org/centos/$releasever|baseurl=http://vault.centos.org/6.10|g' CentOS-Base.repo
安裝spamassassin相關package
3.yum install spamassassin spamassassin-tools procmail perl-Mail-DKIM
4.service spamassassin restart
5.chkconfig spamassassin on
設定spamassassin
6.vim /etc/mail/spamassassin/local.cf
# These values can be overridden by editing ~/.spamassassin/user_prefs.cf
# (see spamassassin(1) for details)
# These should be safe assumptions and allow for simple visual sifting
# without risking lost emails.
required_hits 5
report_safe 0
rewrite_header Subject [SPAM]
# -----------------------------
# 測試設定:標記 X-Spam-Status
# -----------------------------
report_safe 0 # 直接顯示原始信件分析結果,方便測試
required_score 5.0 # 分數達到 5 才算垃圾信
# -----------------------------
# 自訂規則:Display Name + domain
# -----------------------------
# 標記寄件人 domain
header LOCAL_NOT_COMPANY From !~ /\@zzz\.com$/
# 標記寄件人 Display Name
header LOCAL_BAD_NAME From =~ /xxx/
# 綜合規則:同時符合以上兩個條件
meta LOCAL_1 (LOCAL_BAD_NAME && LOCAL_NOT_COMPANY)
# 分數設定
priority LOCAL_1 10
score LOCAL_1 5.0
# 標記寄件人 Display Name
header LOCAL_BAD_NAME2 From =~ /yyy/
# 綜合規則:同時符合以上兩個條件
meta LOCAL_2 (LOCAL_BAD_NAME2 && LOCAL_NOT_COMPANY)
# 分數設定
priority LOCAL_2 10
score LOCAL_2 5.0
安裝 procmail
7.yum install spamassassin procmail -y
8.vi /etc/procmailrc
MAILDIR=/var/mail
LOGFILE=/var/log/procmail.log
SPAMFOLDER=$MAILDIR/spam
# ---- 過濾垃圾信件 (經由 SpamAssassin 標記的 X-Spam-Flag: YES) ----
:0 fw
| /usr/bin/spamc
:0:
* ^X-Spam-Flag: YES
$SPAMFOLDER
create spam信件存放 file
9.sudo touch /var/mail/spam
10.sudo chown postfix:mail /var/mail/spam
11.sudo chmod 666 /var/mail/spam
create spam信件存放 file
12.sudo touch /var/log/procmail.log
13.sudo chown postfix:mail /var/log/procmail.log
14.sudo chmod 666 /var/log/procmail.log
設定postfix
15.vim /etc/postfix/main.cf
## 設定postfix使用procmail處理分類、轉寄、刪除或存檔
mailbox_command = /usr/bin/procmail -a "$EXTENSION"
# 使用系統預設的本地傳送方式
local_transport = local:$myhostname
relay_transport = smtp
virtual_transport = virtual
content_filter =
receive_override_options =
16.vim /etc/postfix/master.cf (搞錯,不用設定)
#每個參數要換行縮排兩個空格(或一個 tab)
#不要在
argv 內拆成多行,整個命令必須在同一行#將以下加在最後
#spamassassin unix - n n - - pipe
# user=nobody # 使用运行 spamd 的用户 (通常是 spamd 或 nobody)
# argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient} # SpamAssassin 客户端
重啟service
17.service spamassassin restart
18.service postfix reload
cron job 加上清空spam & log
19. crontab -l > cronfile ; vim cronfile ; crontab cronfile
1 23 * * */3 cat /dev/null > /var/mail/spam
2 23 * * */3 cat /dev/null > /var/log/procmail.log