[bsd]postfix邮件系统(for freebsd)
freebsd5.4+postfix+cyrus-sasl+mysql+postfixadmin+courier-imap+courier-maildrop+squirrelmail+clamav+spamassassin+amavisd-new2005年6月15日修改完成
1.mysql
2.apache
3.php
4.cyrus-sasl
5.postfix
6.postfixadmin
7.courier-authlib courier-imap
8.courier-maildrop
10.webmail 11.clamav
12.amavisd-new
13.spamassassin
本文在杨廷勇先生的文章上修改而成,他的文中postfix管理工具是他自己写的,我改成了postfixadmin;他的文中没有maildrop部分,我也加上去了;他的文中webmail用的是igunus,我用了squirrelmail。他的原文:http://www.xuki.org/bbs/showthread.php?p=450#post450
FreeBSD的版本为5.4,按最小化安装,软件包只安装ports,安装结束后用cvsup更新ports树。在文档中假设服务器的ip地址为192.168.1.100,域名为test.com,主机名为mail.test.com。
1.安装mysql
# cd /usr/ports/databases/mysql41-server/
# make install clean
2.安装apache
# cd /usr/ports/www/apache2
# make install clean
创建网页根目录
# mkdir /var/www
# vi /usr/local/etc/apache2/httpd.conf
//存放网页的目录,原来为DocumentRoot "",改成:
DocumentRoot "/var/www"
//这句应该和DocumentRoot 的目录保持一致,原来为<Directory "">,改成:
<Directory "/var/www">
//Indexes:当在目录中找不到DirectoryIndex列表中指定的文件就生成当前目录的文件列表
//FollowSymlinks:允许符号链接跟随,访问不在本目录下的文件
Options Indexes FollowSymLinks
//禁止读取.htaccess配置文件的内容
AllowOverride None
//指定先执行Allow(允许)访问规则,再执行Deny(拒绝)访问规则
Order allow,deny
//设置Allow(允许)访问规则,允许所有连接
Allow from all
</Directory>
重启apache
# /usr/local/etc/rc.d/apache2.sh restart
Go to top.
3.安装php 4.3.11
# cd /usr/ports/www/mod_php4
# make install clean
选择
APACHE2
安装需要的PHP扩展模块
# cd /usr/ports/lang/php4-extensions
# make install clean (gettext需选中)
# cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
# vi /usr/local/etc/php.ini
default_charset = "gbk"
register_globals = ON
session.save_path = /tmp
编辑/usr/local/etc/apache2/httpd.conf
找到#AddType application/x-tar .tgz 这行,在下面加两行。
#php_mod4
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
找到下面一行在后面加上index.php,这表示网站的默认页也能够为index.php
DirectoryIndex index.html index.html.var index.php
4.安装cyrus-sasl
# cd /usr/ports/security/cyrus-sasl2
# make install WITH_AUTHDAEMON=yes
5.安装postfix
# cd /usr/ports/mail/postfix
# make install WITH_AUTHDAEMON=yes
选择下面的内容:
SASL2
MYSQL
回答下面的两问题:
You need user "postfix" added to group "mail".
Would you like me to add it ? y
Would you like to activate Postfix in /etc/mail/mailer.conf ? n
# cd /usr/local/etc/rc.d
# ln –s /usr/local/sbin/postfix postfix.sh
# chmod 777 postfix.sh
# ln -s /usr/local/sbin/sendmail /usr/sbin/sendmail
如果/usr/sbin/sendmail存在就删了再做上链接
# echo ‘postfix: root’ >> /etc/aliases
# /usr/local/bin/newaliases
# chown postfix:postfix /etc/opiekeys
6.安装postfixadmin
建立apache和maildrop的用户和组
# pw groupadd vmail -g 1001
# pw useradd vmail -u 1001 -g 1001 -s/sbin/nologin -d/dev/null
# vi /usr/local/etc/apache2/httpd.conf
把
User nobody
Group #-1
改为
User vmail
Group vmail
更改权限,假定运行apache的用户和组为vmail
# chown -R vmail:vmail /var/www/postfixadmin
# cd /var/www/postfixadmin
# chmod 640 *.php *.css
# cd /var/www/postfixadmin/admin/
# chmod 640 *.php .ht*
# cd /var/www/postfixadmin/images/
# chmod 640 *.gif *.png
# cd /var/www/postfixadmin/languages/
# chmod 640 *.lang
# cd /var/www/postfixadmin/templates/
# chmod 640 *.tpl
# cd /var/www/postfixadmin/users/
# chmod 640 *.php
建立mysql表
# cd /var/www
# fetch http://high5.net/postfixadmin/download.php?file=postfixadmin-2.1.0.tgz
# tar zxvf download.php\?file\=postfixadmin-2.1.0.tgz
# mv postfixadmin-2.1.0 postfixadmin
# cd /var/www/postfixadmin
# mysql -u root < DATABASE_MYSQL.TXT
# cp config.inc.php.sample config.inc.php
# vi config.inc.php
本例中的配置如下:
$CONF['default_language'] = 'cn';
$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'postfixadmin';
$CONF['database_name'] = 'postfix';
//$CONF['encrypt'] = 'md5crypt';
$CONF['encrypt'] = 'cleartext';
$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';
$CONF['quota'] = 'YES';
我们在这里使用明文口令方式,如果想使用密文,请把$CONF['encrypt']='cleartext';改成$CONF['encrypt']='md5crypt';
邮箱的存储格式使用domain.ltd/username的形式,所以设置:
$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';
然后打开浏览器,进入postfixadmin的欢迎界面,点击网页上的setup,看看检查是否通过,记得要删除setup.php文件。
# vi /usr/local/etc/postfix/main.cf
#=====================BASE=========================
#主机名称(用 FQDN 的方式来写)
myhostname = www.test.com
#domain 名称
mydomain = test.com
#邮件标头上面的 mail from 的那个地址
myorigin = $mydomain
#可用来收件的主机名称(这里没有使用$mydomain是因为我们将使用virtualhost)
mydestination = $myhostname localhost localhost.$mydomain
#允许不使用smtp发信认证的网段
mynetworks = 127.0.0.0/8
inet_interfaces = all
#使用的邮箱格式
#home_mailbox = Maildir/
#mailbox_transport = maildrop
#=====================Vritual Mailbox settings=========================
# 指定用户邮箱所在的根目录
virtual_mailbox_base = /var/mailbox/
#指定postfix如何去检索邮件用户,这里是采用mysql (用户邮箱的目录)
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf
virtual_alias_domains =
virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
#邮件账号的uid, 使用apache的运行用户
virtual_uid_maps = static:1001
virtual_gid_maps = static:1001
#virtual_uid_maps = mysql:/usr/local/etc/postfix/mysql-virtual_uid_maps.cf
#virtual_gid_maps = mysql:/usr/local/etc/postfix/mysql-virtual_gid_maps.cf
# use this for virtual delivery(如果没有安装maildrop,则此处为virtual)
#virtual_transport = virtual
#use this for maildrop-delivery (如果有maildrop,则此处为maildrop)
virtual_transport = maildrop
#Maildrop-Options for usage with maildrop
maildrop_destination_recipient_limit = 1
maildrop_destination_concurrency_limit = 1
#/var/mailbox/最后的"/"字符不能省略
#所有的MySQL查询配置文件统一存放在/usr/local/etc/postfix中
#====================QUOTA========================
#每封信的最大大小(10M),postfix的默认值是10M, 但这指的是邮件正文和编码后附件的总和, 经过#base64编码,附件的大小会增加35%左右, 因此这里设定可接受邮件的大小为14M
message_size_limit = 14336000
#邮箱的默认大小(10M)
virtual_mailbox_limit = 20971520
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
#指定postfix如何获得用户的quota信息(每个用户的邮箱大小)
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
# 是否允许覆盖默认邮箱的大小
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_overquota_bounce = yes
#====================SASL========================
broken_sasl_auth_clients = yes
#In order to allow mail relaying by authenticated clients
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_unknown_sender_domain,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_pipelining,
reject_unauth_destination,
permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_sasl_application_name = smtpd
smtpd_banner=$myhostname ESMTP "Version not Available"
Go to top.
建立/var/mailbox并设置权限
# mkdir /var/mailbox
# chown -R vmail:vmail /var/mailbox
# chmod -R ug+rwx,o-rwx /var/mailbox
建立MySQL查询配置文件
1、vi /usr/local/etc/postfix/mysql_virtual_alias_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
2、vi /usr/local/etc/postfix/mysql_virtual_domains_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain
#additional_conditions = and backupmx = '0' and active = '1'
3、vi /usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
#additional_conditions = and active = '1'
4、vi /usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = quota
where_field = username
#additional_conditions = and active = '1'
配置 /usr/local/lib/sasl2/smtpd.conf
# vi /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path:/var/run/authdaemond/socket
启动postfix
# postfix start
7.安装Courier-authlib和courier-imap
安装Courier-imap
# cd /usr/ports/mail/courier-imap
# make WITHOUT_OPENSSL=yes WITH_MYSQL=yes install clean
选择
MYSQL
OPENSSL
IPV6
此时会在/var/run/authdaemond/下产生socket
chmod +x /var/run/authdaemond
# cd /usr/local/etc/courier-imap
# cp imapd.cnf.dist imapd.cnf
# cp pop3d.cnf.dist pop3d.cnf
# vi /usr/local/etc/authlib/authdaemonrc (确保只使用mysql认证模块)
authmodulelist="authmysql"
authmodulelistorig="authmysql"
# vi /usr/local/etc/authlib/authmysqlrc
MYSQL_SERVER localhost
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_DATABASE postfix
MYSQL_USERNAME postfix
MYSQL_PASSWORD postfix
MYSQL_USER_TABLE mailbox
MYSQL_LOGIN_FIELD username
#MYSQL_CRYPT_PWFIELD password
MYSQL_CLEAR_PWFIELD password
MYSQL_UID_FIELD '1001'
MYSQL_GID_FIELD '1001'
MYSQL_HOME_FIELD '/var/mailbox/'
MYSQL_MAILDIR_FIELD maildir
MYSQL_NAME_FIELD name
MYSQL_QUOTA_FIELD quota
MYSQL_WHERE_CLAUSE active='1'
DEFAULT_DOMAIN test.com
注意:确认在这个文件中不能用空格键,只能用tab键。
确认只使用单引号,比如:'/var/mailbox/','UID','GID'(本文为'1001')
localhost不能用单引号
确认你的/etc/hosts文件中有localhost
编译时如果支持Ipv6可能导致错误
MYSQL_GID_FIELD 和MYSQL_UID_FIELD是maildrop的UID和GID,而不是MySQL的。
如果想使用md5密码,把MYSQL_CLEAR_PWFIELD password改成MYSQL_CRYPT_PWFIELD password。
编辑/etc/rc.conf,加入
mysql_enable="yes"
apache2_enable="yes"
sendmail_enable="YES"
sendmail_flags="-bd"
sendmail_pidfile="/var/spool/postfix/pid/master.pid"
sendmail_outbound_enable="NO"
sendmail_submit_enable="NO"
sendmail_msp_queue_enable="NO"
courier_authdaemond_enable="YES"
courier_imap_pop3d_enable="YES"
courier_imap_imapd_enable="YES"
9.安装Courier-maildrop
# cd /usr/ports/mail/maildrop
# make WITH_AUTHLIB=yes install clean
选择
运行maildrop -v应该有如下提示信息:
maildrop 1.8.0 Copyright 1998-2004 Double Precision, Inc.
maildrop 1.8.0 Copyright 1998-2004 Double Precision, Inc.
Courier Authentication Library extension enabled.
Maildir quota extension enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.
新建/etc/maildroprc文件
# vi /etc/maildroprc
logfile "/var/mailbox/maildrop.log"
to "$HOME$DEFAULT"
# chmod a+r /etc/maildroprc
配置Postfix
# vi /usr/local/etc/postfix/main.cf
virtual_transport = maildrop
maildrop_destination_recipient_limit = 1
# vi /usr/local/etc/postfix/master.cf
maildrop unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/local/bin/maildrop -w 90 -d ${recipient}
由于maildrop没有建立maildir的功能,因此由一小断脚本实现 (如果系统没有sudo,请先装sudo,在/usr/ports/security/sudo下)
# vi /usr/local/etc/sudoers
vmail ALL = NOPASSWD: /usr/sbin/maildirmake.sh
新建/usr/sbin/maildirmake.sh文件
# vi /usr/sbin/maildirmake.sh
#!/usr/local/bin/bash
set -e
if [ ! -d /var/mailbox/$1 ]
then
mkdir /var/mailbox/$1
fi
chown -R vmail:vmail /var/mailbox/$1
cd "/var/mailbox/$1"
/usr/local/bin/maildirmake $2
chown -R 1001:postfix /var/mailbox/$1/$2
chmod -R g=s /var/mailbox/$1/$2
# chmod 755 /usr/sbin/maildirmake.sh
更改postfixadmin/admin目录下的create-mailbox.php文件
在此文件的200行后加一行:
# vi /var/www/postfixadmin/admin/create-mailbox.php
system("sudo /usr/sbin/maildirmake.sh $fDomain ".$_POST['fUsername']);
说明:
建立的邮箱格式:/var/vmail/domain.tld/username
uid 1001 是vmail的用户id,也是目录/var/vmail的owner
gid 12345 是postfix的组id
设置quotas
Postfixadmin的数据库的maildrop表的quota字段是int类型的,在maildrop下不能工作,不过我们可以修改 /usr/local/etc/authlib/authmysqlrc文件,把其中的MYSQL_QUOTA_FIELD quota一行改为MYSQL_QUOTA_FIELD concat(quota,'S') ,如果你想限制邮件的数量,也可以改成MYSQL_QUOTA_FIELD concat(quota,'C')。
如果我们把一个用户的邮箱设为10M,我们可以把quota的值改为“10000000S”。也可以用“C”,“1000C”的意思是只能存放1000条邮件。
10.2.安装squirrelmail 1.4.4
下载squirrelmail及中文包
# wget http://jaist.dl.sourceforge.net/sourceforge/squirrelmail/squirrelmail-1.4.4.tar.bz2
# wget http://jaist.dl.sourceforge.net/sourceforge/squirrelmail/zh_CN-1.4.4-20050122.tar.bz2
把squirreelmail解压到/var/www目录下。
# tar -jxvf squirrelmail-1.4.4.tar.bz2 -C /var/www/
# mv /var/www/squirrelmail-1.4.4 /var/www/squirrelmail
解压中文包
# tar -jxvf zh_CN-1.4.4-20050122.tar.bz2 -C /var/www/squirrelmail/
在配置squirrelmail之前先下载三个插件:
Quota Usage Version 1.3
# wget http://www.squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fquota_usage-1.3-1.2.7.tar.gz
Compatibility Version 1.3
# wget http://www.squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fcompatibility-1.3.tar.gz
Change MySQL Password Version 3.2
# wget http://www.squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fchange_mysqlpass-3.2-1.2.8.tar.gz
把这三个插件解压到squirrelmail的plugin目录下并设置权限。
# tar -zxvf quota_usage-1.3-1.2.7.tar.gz -C /var/www/squirrelmail/plugins/
# tar -zxvf compatibility-1.3.tar.gz -C /var/www/squirrelmail/plugins/
# tar -zxvf change_mysqlpass-3.2-1.2.8.tar.gz -C /var/www/squirrelmail/plugins/
第一个插件是用来显示邮箱的使用情况的;第二个和第三个插件是用来修改密码的。
如果不想装这些插件,请跳过。
配置Quota Usage
# cd /var/www/squirrelmail/plugins/quota_usage
# cp config.php.sample config.php
配置Change MySQL Password
# cd /var/www/squirrelmail/plugins/change_mysqlpass
# cp config.php.sample config.php
# vi config.php
更改如下几个变量:
$mysql_database = 'postfix';
$mysql_table = 'mailbox';
$mysql_userid_field = 'username';
$mysql_password_field ='password';
$mysql_manager_id = 'postfix';
$mysql_manager_pw = 'postfix';
$mysql_unixcrypt = 0;
//$mysql_MD5crypt = 1;
$mysql_MD5crypt = 0;
$use_ssl_for_password_change = 0;
如果你的密码是MD5加密的,就把$mysql_MD5crypt = 0;改成$mysql_MD5crypt = 1;
配置squirrelmail
# cd /var/www/squirrelmail
# ./configure
进入10. Languages
把1. Default Language : 的en_US改成zh_CN。
进入8. Plugins,添加这三个插件
打开浏览器输入http://192.168.0.5/squirrelmail/,用test@test.com登陆,你将会在屏幕的左上角看到邮箱的使用情况,你还会看到一条警告信息:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /var/www/squirrelmail/plugins/change_mysqlpass/functions.php on line 129
这是由于数据库结构不一致造成的,你只要把functions.php中的129行注释调即可(在行首加//)。
现在你还可以用选项中的change passwd修改你的密码了,不过这个模块是英文的,如果你想改成中文的,可以自己修改,squirrelmail网站上有介绍。或者请参考:
http://datastrategy.org/number5/archives/000241.html
1、把change_mysqlpass.po与locale/zh_CN/LC_MESSAGES/squirrelmail.po合并
最简单的方法就是:
# cat change_mysqlpass.po >> /var/www/squirrelmail/locale/zh_CN/LC_MESSAGES/squirrelmail.po
2、执行:
# cd /var/www/squirrelmail/locale/zh_CN/LC_MESSAGES/
# msgfmt -o squirrelmail.mo squirrelmail.po
由于安全原因,建议把data目录移出web tree,比如移到/usr目录下,设置权限
# cp -R /var/www/squirrelmail/data/ /var/data
# chown -R vmail.vmail /var/data
# chmod 730 -R /var/data
11.安装clamav
# cd /usr/ports/security/clamav
# make install clean
注:选中CURL
更新病毒库
# freshclam
第一次运行的时候会提示
ERROR: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd
connect(): No such file or directory
再运行一次就好了
设置自动更新病毒库
# vi /etc/crontab
0 4 * * * root freshclam --quiet -l /var/log/clamd.log
12.安装amavisd-new
# cd /usr/ports/security/amavisd-new
# make install clean
选中MySQL
编辑/etc/rc.conf,加入
amavisd_enable="YES"
编辑/usr/local/etc/amavisd.conf,修改下面这几行
# vi /usr/local/etc/amavisd.conf
$mydomain = 'test.com';
$max_requests = 10;
$child_timeout=5*60;
@bypass_virus_checks_acl = qw( . );
@local_domains_acl = ( ".$mydomain" );
$final_spam_destiny = D_PASS;
read_hash(\%whitelist_sender, '/var/amavis/whitelist');
read_hash(\%blacklist_sender, '/var/amavis/blacklist');
read_hash(\%spam_lovers, '/var/amavis/spam_lovers');
$sa_tag_level_deflt = -100;
$sa_tag2_level_deflt = 6.3;
$sa_kill_level_deflt = $sa_tag2_level_deflt;
$notify_method = 'smtp::10025';
$forward_method = 'smtp::10025';
建立所需要的文件
# touch /var/amavis/whitelist
# touch /var/amavis/blacklist
# touch /var/amavis/spam_lovers
# chown vscan /var/amavis/whitelist
# chown vscan /var/amavis/blacklist
# chown vscan /var/amavis/spam_lovers
# echo spam@test.com >> /var/amavis/spam_lovers
# echo notspam@test.com >> /var/amavis/spam_lovers
设置postfix
修改/etc/postfix/main.cf
# vi /etc/postfix/main.cf (加入一行)
content_filter = amavis:127.0.0.1:10024
修改/etc/postfix/master.cf
# vi /etc/postfix/master.cf (在最后加上)
# amavisd-new
amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
localhost:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o mynetworks=127.0.0.0/8
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
重新启动postfix
# postfix stop
# postfix start
# postfix check
启动amavisd
# /usr/local/etc/rc.d/amavisd.sh start
# netstat -an | grep LISTEN (应该可以看到这两个端口在监听)
127.0.0.1.10024 *.* 0 0 49152 0 LISTEN
127.0.0.1.10025 *.* 0 0 49152 0 LISTEN
13.安装Spamassassin 3.0.3
在新的AMaVisd-new已经结合了Spamassassin功能,所以只要用 ports安装了 AMaVisd-new,那Spamassassin 也已经安装好了。
添加需要的用户
# pw useradd spam -c "Spam Bayes Learner" -d /var/empty -s /sbin/nologin
# pw useradd notspam -c "Not Spam Bayes Learner" -d /var/empty -s /sbin/nologin
# vi /usr/local/etc/mail/spamassassin/local.cf (修改后不用重新启动 SpamAssassin,立即生效)
use_bayes 1
bayes_path /var/amavis/.spamassassin/bayes
auto_learn 1
auto_learn_threshold_nonspam -2
auto_learn_threshold_spam 15
建立自动学习体系
# vi /usr/local/sbin/my-sa-learn.sh
#!/bin/sh
if [ -e /var/mail/spam ]; then
/usr/local/bin/sa-learn --spam -p /var/amavis/.spamassassin/user_prefs --mbox /var/mail/spam
rm /var/mail/spam > /dev/null
fi
if [ -e /var/mail/notspam ]; then
/usr/local/bin/sa-learn --ham -p /var/amavis/.spamassassin/user_prefs --mbox /var/mail/notspam
rm /va/mail/notspam > /dev/null
fi
# chmod a+x /usr/local/sbin/my-sa-learn.sh
建立学习知识库:
# /usr/local/bin/sa-learn --sync -p /var/amavis/.spamassassin/user_prefs
定时运行:
# crontab -e
5 0 * * * /usr/local/sbin/my-sa-learn.sh
测试
# telnet 127.0.0.1 10024
Trying 127.0.0.1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 ESMTP amavisd-new service ready
MAIL FROM:<test@test.com>
250 2.1.0 Sender test@test.com OK
RCPT TO:<test@test.com>
250 2.1.5 Recipient test@test.com OK
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: test
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
.
250 2.7.1 Ok, discarded, id=00228-01 - VIRUS: Eicar-Test-Signature
//出现这一行表示系统已经认出这个邮件中含有 Virus
页:
[1]