架构基于FreeBSD和Postfix的IGENUS Webmail邮件系统2.02正式发布

发表于:2007-05-25来源:作者:点击数: 标签:
架构基于Free BSD和Postfix的IGENUS Web mail邮件系统 ―――――――――――――――――――――――――――――――――― 主要改进了验证方式和验证程序,验证速度比1.05快1-2倍,更加节约系统资源,使系统配置更简单化。 发布了igenus for postfix 1.
架构基于Free BSD和Postfix的IGENUS Web mail邮件系统
――――――――――――――――――――――――――――――――――
主要改进了验证方式和验证程序,验证速度比1.05快1-2倍,更加节约系统资源,使系统配置更简单化。
发布了igenus for postfix 1.01 bate版本
修正了配置文件authdaemonrc文件,使系统运行更加的稳定
修正了很多文字性的错误......
增加手动设置测试用户
演示:
http://mail.toping.net
用户名:demo@toping.net
密 码:demo
――――――――――――――――――――――――――――――――――

Free BSD+Postfix+Cyrus-sasl+Courier-imap+igenus+Clamav+amavisd-new
杨廷勇
Copyright © 2004、2005
本文介绍使用FreeBSD+Postfix+cyrus-sasl+Courier-imap+igenus+Clamav+amavisd-new来架构一个具有多域名,有webmail防病毒和垃圾邮件并有web管理界面的邮件系统。
Jacky, $Revision: 2.02 bate $Date: 2005-5-25
系统主要采用MySQL做为认证数据库
本文在FreeBSD4.10、5.3、5.4上安装测试通过,登录认证放弃采用PAM方式。看了很多资料,但大多都是使用PAM,本系统使用courier认证。courier认证最大的优点是简单,而且支持加密认证和安全连接,是同一个进程,效率更高。配置文件更少。
Table of Contents
Chapter 1. 系统安装
1.1 安装MySQL
1.2 安装Apache
1.3 安装PHP
1.4 安装openssl
1.5 安装phpMyAdmin
1.6 通过phpMyadmin设置数据库
1.7安装Courier-imap
1.8安装 postfix 和 cyrus-sasl
1.9 安装expect
1.10 安装Courier-imap
Chapter 2. 配置邮件服务器
2.1 配置rc.conf
2.2 配置postfix 和 cyrus-sasl
2.3 配置Courier-imap
Chapter 3. 手动设置第一个用户并测试
Chapter 4. 安装postfix管理工具
4.1安装本人开发的postfix管理工具
4.2 用户登录测试
Chapter 5. 防病毒与防垃圾邮件
5.1 安装Clamav
5.2 安装amavisd-new
5.3 安装配置Spamassassin
Chapter 6. 安装webmail
Chapter 7. 查看系统状态

Chapter 1. 系统安装
安装之前:因用户数据都保存在/var目录下,因此安装FreeBSD时/var的空间应尽量大。FreeBSD的版本为5.3,按最小化安装,软件包只 安装cvsup,安装结束后用cvsup更新ports树。在文档中假设服务器的ip地址为192.168.0.2,域名为toping.net,主机名 为mail.toping.net。

1.1 安装MySQL
mail# cd /usr/ports/databases/mysql323-server
mail# make install clean

编辑/etc/rc.conf,加入
mysql_enable="YES"


1.2 安装Apache
mail# cd /usr/ports/www/apache2
mail# make install clean

编辑/etc/rc.conf,加入
Apache2_enable="YES"


1.3 安装PHP
mail# cd /usr/ports/www/mod_php4

mail# make install clean

安装需要的PHP扩展模块
mail# cd /usr/ports/lang/php4-extensions
mail# make install clean

注:gettext需选中
最后在编辑/usr/local/etc/apache2/httpd.conf中加入:
#php_mod4
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

1.4 安装openssl
mail# cd /usr/ports/security/openssl

mail# make install clean


1.5 安装phpMyAdmin
mail# cd /usr/ports/databases/phpmyadmin
mail# make install clean(在这里建议可以选择所有的选项)

安装装后默认的安装目录为:/usr/local/www下面你要做的就是移到/usr/local/www/data目录下面
mail# mv /usr/local/www/phpMyAdmin /usr/local/www/data/
修改/usr/local/www/phpMyAdmin/config.inc.php
$cfg['PmaAbsoluteUri'] = 'http://192.168.0.2/phpMyAdmin/';
$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?
指定phpmyadmin的认证方式为http方式。
在浏览器输入http://192.168. 0.2/phpMyAdmin/,首次进行登入的用户名为root密码为空,登入后可以修改你的密码。


1.6 通过phpMyadmin设置数据库
建立两个数据库用户
#======================postfix==================================

INSERT INTO user (host,user,password) VALUES('localhost','postfix','');
update user set password=password('postfix') where User='postfix';
FLUSH PRIVILEGES;
GRANT ALL ON mail.* TO postfix@localhost IDENTIFIED BY "postfix";
建立数据库
#=======================MAIL.SQL=================================

CREATE TABLE domaininfo (
domain_id int(5) NOT NULL auto_increment,
domain varchar(25) NOT NULL default '',
alias varchar(30) default NULL,
passwd varchar(35) NOT NULL default '',
usernum int(5) NOT NULL default '0',
quota int(11) NOT NULL default '0',
des varchar(30) default NULL,
expire date NOT NULL default '0000-00-00',
active tinyint(1) NOT NULL default '1',
create_time datetime default NULL,
PRIMARY KEY (domain_id),
UNIQUE KEY domain (domain),
KEY domain_id (domain_id)
) TYPE=MyISAM COMMENT='domain information';


INSERT INTO domaininfo VALUES (1,'admin',NULL,'$.j3.t12.$I7MGf7ZD2HrWwUWQF88Mg1',0,0,'Super Admin','0000-00-00',1,'0000-00-00 00:00:00');

CREATE TABLE userinfo (
id int(11) NOT NULL auto_increment,
userid varchar(20) NOT NULL default '',
domain_id int(5) NOT NULL default '0',
address varchar(50) NOT NULL default '',
alias varchar(60) default NULL,
passwd varchar(35) NOT NULL default '',
realname varchar(20) default NULL,
quota int(11) NOT NULL default '0',
active tinyint(1) NOT NULL default '0',
homedir varchar(60) NOT NULL default '',
maildir varchar(60) NOT NULL default '',
create_time datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id),
UNIQUE KEY address (address)
) TYPE=InnoDB COMMENT='User Information';



1.7 安装Courier-imap
mail# cd /usr/ports/mail/courier-imap
mail# make WITHOUT_OPENSSL=yes WITH_MYSQL=yes install clean
选择
[X] MYSQL
[X] OPENSSL
[X] IPV6
此时会在/var/run/authdaemond/下产生socket
chmod +x /var/run/authdaemond

mail# cd /usr/local/etc/courier-imap
mail# cp imapd.cnf.dist imapd.cnf
mail# cp pop3d.cnf.dist pop3d.cnf

1.8 安装 postfix 和 cyrus-sasl
mail# cd /usr/ports/security/cyrus-sasl2
mail# make install WITH_AUTHDAEMON=yes

创建/usr/local/lib/sasl2/smtpd.conf
CODE
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path:/var/run/authdaemond/socket

至此,认证部分基本完成。

mail# cd /usr/ports/mail/postfix
mail# make install clean
选择下面的内容:
[X] SASL2
[X] TLS
[X] MYSQL
回答下面的两问题:
You need user "postfix" added to group "mail".
Would you like me to add it [y]? y

Would you like to activate Postfix in /etc/mail/mailer.conf [n]? n

mail# cd /usr/local/etc/rc.d
mail# ln –s /usr/local/sbin/postfix postfix.sh
mail# chmod 777 postfix.sh
mail# ln -s /usr/local/sbin/sendmail /usr/sbin/sendmail
如果/usr/sbin/sendmail存在就删了再做上链接
mail# echo ‘postfix: root’ >> /etc/aliases
mail# /usr/local/bin/newaliases
mail# chown postfix:postfix /etc/opiekeys


1.9 安装expect
用于Web客户端建立邮件用户
mail# cd /usr/ports/lang/expect
mail# make install clean

Chapter 2. 配置邮件服务器
本节主要讲述各种服务的参数配置。

2.1 配置rc.conf,编辑/etc/rc.conf,加入

CODE
mysql_enable="YES"
apache2_enable="YES"
#saslauthd_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"
#amavisd_enable="YES"

2.3 配置postfix 和 cyrus-sasl
(1)创建/etc/periodic.conf

CODE
daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"


(2)修改/usr/local/etc/postfix/main.cf,在文件最后加入以下内容

CODE
#======= BASE ==============
myhostname = mail.toping.net
mydomain = toping.net
#home_mailbox = Maildir/
mydestination = $myhostname
local_recipient_maps =
#mailbox_command= /usr/local/bin/deliverquota -w 90 ~/Maildir
command_directory = /usr/local/sbin
local_transport=virtual
#======= MYSQL =============
virtual_transport = virtual
virtual_mailbox_domains = mysql:/usr/local/etc/postfix/transport.cf
virtual_gid_maps = static:125
virtual_mailbox_base = /
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual.cf
virtual_maps = mysql:/usr/local/etc/postfix/mysql.aliases.cf
virtual_uid_maps = static:125
#======= Quota ============
message_size_limit = 5242880
virtual_mailbox_limit_inbox = no
virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mailboxsize-mysql.cf
virtual_mailbox_limit_override = yes
virtual_maildir_extended = yes
virtual_create_maildirsize = yes
virtual_mailbox_limit = 52428800
#====== SASL ================
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination reject
#smtpd_sasl_local_domain = $mydomain
smtpd_client_restrictions = permit_sasl_authenticated



(3)确认/usr/local/etc/postfix/master.cf的配置有如下内容

CODE
virtual unix - n n - - virtual


(4)编辑/usr/local/etc/postfix/transport.cf

CODE
user = postfix
password = postfix
dbname = postfix
table = domaininfo
#select_field = alias
select_field = domain
where_field = domain
hosts = localhost


(5)编辑/usr/local/etc/postfix/gids.cf

CODE
user = postfix
password= postfix
dbname = postfix
table = userinfo
select_field = domain_id
where_field = id
hosts = localhost


(6)编辑/usr/local/etc/postfix/uids.cf

CODE
user = postfix
password= postfix
dbname = postfix
table = userinfo
select_field = userid
where_field = id
hosts = localhost


(7)编辑/usr/local/etc/postfix/mysql_virtual.cf

CODE
user = postfix
password= postfix
dbname = postfix
table = userinfo
select_field = maildir
#where_field = id
where_field = address
hosts = localhost


(8)编辑/usr/local/etc/postfix/mysql.aliases.cf

CODE
user = postfix
password= postfix
dbname = postfix
table = domaininfo
select_field = domain
where_field = domain_id
hosts = localhost


(9)编辑/usr/local/etc/postfix/mailboxsize-mysql.cf

CODE
user = postfix
password = postfix
dbname = postfix
table = userinfo
select_field = quota
where_field = id
hosts = localhost

2.4 配置Courier-imap
(1)修改Courier相关设置,/usr/local/etc/courier-imap/imapd:

CODE
IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE"



(2)修改/usr/local/etc/courier-imap/pop3d

CODE
POP3AUTH="LOGIN CRAM-MD5 CRAM-SHA1"


(3)编辑修改/usr/local/etc/authlib/authmysqlrc 示例:authmysqlrc

CODE
MYSQL_SERVER localhost
MYSQL_USERNAME postfix
MYSQL_PASSWORD postfix
MYSQL_PORT 0
MYSQL_OPT 0
MYSQL_DATABASE postfix
MYSQL_USER_TABLE userinfo
MYSQL_CRYPT_PWFIELD passwd
MYSQL_UID_FIELD '125'
MYSQL_GID_FIELD '125'
MYSQL_LOGIN_FIELD address
MYSQL_HOME_FIELD homedir
MYSQL_NAME_FIELD realname
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD quota



(4)编辑/usr/local/etc/authlib/authdaemonrc

CODE
authmodulelist="authmysql authpam authuserdb"

authmodulelistorig="authmysql authpam authuserdb"

version="authdaemond.mysql"

daemons=5

authdaemonvar=/var/run/authdaemond

subsystem=mail

DEBUG_LOGIN=0

DEFAULTOPTIONS="wbnodsn=1"
重启服务器

Chapter 3.  手动设置第一个用户并测试

本章介绍如何开通用户,并且测试系统是否正常。

Mail# Mysql

mysql> use mail;

mysql> show tables;
+----------------+
| Tables_in_mail |
+----------------+
| domaininfo |
| userinfo |
+----------------+
2 rows in set (0.00 sec)

增加域名和管理员

mysql> desc domaininfo;
+-------------+-------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+------------+----------------+
| domain_id | int(5) | | PRI | NULL | auto_increment |
| domain | varchar(25) | | UNI | | |
| alias | varchar(30) | YES | | NULL | |
| passwd | varchar(35) | | | | |
| usernum | int(5) | | | 0 | |
| quota | int(11) | | | 0 | |
| des | varchar(30) | YES | | NULL | |
| expire | date | | | 0000-00-00 | |
| active | tinyint(1) | | | 1 | |
| create_time | datetime | YES | | NULL | |
+-------------+-------------+------+-----+------------+----------------+
10 rows in set (0.00 sec)

mysql> INSERT INTO `domaininfo` VALUES (7, 'toping.net', NULL, encrypt('admin123'), 50, 500, NULL, '0000-00-00', 1, '2005-04-19 23:19:11');
Query OK, 1 row affected (0.00 sec)

查讯看刚才加的域名成功到数据库里面

Mysql>select * from domaininfo;


mysql> desc userinfo;
+-------------+-------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------------------+----------------+
| id | int(11) | | PRI | NULL | auto_increment |
| userid | varchar(20) | | | | |
| domain_id | int(5) | | | 0 | |
| address | varchar(50) | | UNI | | |
| alias | varchar(60) | YES | | NULL | |
| passwd | varchar(35) | | | | |
| realname | varchar(20) | YES | | NULL | |
| quota | int(11) | | | 0 | |
| active | tinyint(1) | | | 0 | |
| homedir | varchar(60) | | | | |
| maildir | varchar(60) | | | | |
| create_time | datetime | | | 0000-00-00 00:00:00 | |
+-------------+-------------+------+-----+---------------------+----------------+
12 rows in set (0.00 sec)

mysql> INSERT INTO `userinfo` VALUES (8, 'webmaster', 7, 'webmaster@toping.net', NULL, encrypt('admin123'), 'webmaster', 209715200, 1, '/var/mail/toping.net/webmaster/', '/var/mail/toping.net/webmaster/Maildir/', '2005-04-20 23:45:17');

mysql>quit

设置用户的目录与权限:
Mail# mkdir -p /var/mail/toping.net/webmaster
Mail# /usr/local/bin/maildirmake /var/mail/toping.net/webmaster/Maildir

Mail# chmod -R 777 /var/mail/toping.net/
Mail# chown -R postfix:postfix /var/mail/test.com
至此用户设置完毕,这里只使用一个域名,同理可以设置多个域名。

Chapter 4.安装postfix管理工具(商业版)

本节主要介绍如何安装和使用本人开发的postfix管理工具。

4.1安装本人开发的postfix管理工具来设置第一个域名和用户
上传管理工具到网站目录
后修改include/config.inc.php中的
define(DOMAINSDIR,"/home/vmail");  为  define(DOMAINSDIR,"/var/mail");
define(MYSQL_HOST, 'localhost'); 为  您的MySQL服务器的主机名
define(MYSQL_USER, 'root');     为  您的MySQL的用户名
define(MYSQL_PASS, 'mypasswd');   为  您的MySQL的密码
define(MYSQL_DATA, 'postfix');    为  您的邮件服务器的数据库
修改完成后运行:http://mail.toping.net/webadmin/install.php
完装完成!!
4.2 用户登录测试
用户登录测试
安装p5-MIME-Base64
mail# cd /usr/ports/converters/p5-MIME-Base64/

mail# make install clean

通过p5-MIME-Base64来取得用户名和密码的base64编码
mail# perl -MMIME::Base64 -e 'print encode_base64("webmaster\@toping.net");'
d2VibWFzdGVyQHRvcGluZy5uZXQ=
mail# perl -MMIME::Base64 -e 'print encode_base64("000000");'
MDAwMDAw
发送邮件:
mail# telnet 127.0.0.1 25

Trying 127.0.0.1...
Connected to 0.
Escape character is '^]'.
220 mail.toping.net ESMTP Postfix
ehlo mail
250-mail.toping.net
250-PIPELINING
250-SIZE 4194304
250-VRFY
250-ETRN
250-AUTH NTLM LOGIN PLAIN OTP
250-AUTH=NTLM LOGIN PLAIN OTP
250 8BITMIME
auth login
334 VXNlcm5hbWU6
d2VibWFzdGVyQHRvcGluZy5uZXQ= //此为用户名id:webmaster@toping.net
334 UGFzc3dvcmQ6
MDAwMDAw //此为用户密码password:000000
235 Authentication suclearcase/" target="_blank" >ccessful
MAIL FROM:webmaster@toping.net //告诉服务器发件人的Email地址
250 Ok
RCPT TO:webmaster@toping.net //告诉服务器收件人的地址
250 OK

DATA //告诉服务器开始写信
354 End data with <CR><LF>.<CR><LF>
SUBJECT:test //subject后面填写的是邮件的主题
test
. //换行后输入.后按回车,表示信件内容书写完毕
250 Ok: queued as 58DC71D5

quit //发送信件,结束对话,退出SMTP服务器
221 Bye
Connection closed by foreign host

收取邮件:
mail# telnet 127.0.0.1 110
Trying 127.0.0.1...
Connected to 0
Escape character is '^]'
+OK Hello there
user webmaster@toping.net m
+OK Password required
pass 000000
+OK logged in
list

+OK POP3 clients that break here, they violate STD53
1 2217
.
retr 1 //返回第一封信的全部内容
+OK 2217 octets follow.
Return-Path: <webmaster@toping.net>
X-Original-To: webmaster@toping.net
Delivered-To: webmaster@toping.net
Received: from mail (localhost.toping.net [127.0.0.1])
by mail.toping.net (Postfix) with ESMTP id 58DC71D5
for <webmaster@toping.net>; Mon, 9 Aug 2004 21:11:20 +0800 (CST)
SUBJECT:test
Message-Id: <20040809131120.58DC71D5@mail.toping.net>
Date: Mon, 9 Aug 2004 21:11:20 +0800 (CST)
From: webmaster@toping.net
To: undisclosed-recipients:;

test
.
dele 1 //删除
+OK Deleted
quit

+OK Bye-bye
Connection closed by foreign host

也可以使用任何其它的邮件客户端程序来测试,如foxmail、Outlook Express等等。

Chapter 5. 防病毒与防垃圾邮件
本章介绍病毒与垃圾邮件的防范。

5.1 安装Clamav
mail# cd /usr/ports/security/clamav

mail# make install clean
注:选中CURL

重启服务器
测试
mail# clamscan -r -i /usr/local/www/data
----------- SCAN SUMMARY -----------
Known viruses: 32358
Scanned directories: 47
Scanned files: 866
Infected files: 0
Data scanned: 10.32 MB
I/O buffer size: 131072 bytes
Time: 41.750 sec (0 m 41 s)
升级病毒库
mail# freshclam
ClamAV update process started at Fri May 6 00:12:24 2005
WARNING: Your ClamAV installation is OUTDATED - please update immediately!
WARNING: Local version: 0.83 Recommended version: 0.84
Downloading main.cvd[*]
main.cvd updated (version: 31, sigs: 33079, f-level: 4, builder: tkojm)
Downloading daily.cvd[*]
daily.cvd updated (version: 871, sigs: 1178, f-level: 4, builder: ccordes)
Database updated (34257 signatures) from database.clamav.net (IP: 61.8.0.16)
Clamd successfully notified about the update.

5.2 安装amavisd-new
版本20040701。
mail# cd /usr/ports/security/amavisd-new
mail# make install clean

选中MySQL

编辑/etc/rc.conf,加入
amavisd_enable="YES"

修改/usr/local/etc/amavisd.Conf
$mydomain = 'example.com';改成$mydomain = 'toping.net ';

#$notify_method = 'smtp:[127.0.0.1]:10025';
#$forward_method = 'smtp:[127.0.0.1]:10025';
的注释去掉

修改/usr/local/etc/postfix/master.cf,最后加入
##########################3amavis######################################
smtp-amavis unix - - y - 2 smtp -o smtp_data_done_timeout=1200
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
重启服务器

5.3 安装配置Spamassassin
在新的AMaVisd-new已经结合了Spamassassin功能,所以只要用 ports安装了 AMaVisd-new,那Spamassassin 也已经安装好了。
添加需要的用户
mail# pw useradd spam -c "Spam Bayes Learner" -d /var/empty -s /sbin/nologin

mail# pw useradd notspam -c "Not Spam Bayes Learner" -d /var/empty -s /sbin/nologin

修改/usr/local/etc/mail/spamassassin/local.cf
use_bayes 1
bayes_path /var/amavis/.spamassassin/bayes
auto_learn 1
auto_learn_threshold_nonspam -2
auto_learn_threshold_spam 15
修改/usr/local/etc/amavisd.conf,在$mydomain = 'toping.net';一段下面增加
$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');
建立所需要的文件
mail# touch /var/amavis/whitelist
mail# touch /var/amavis/blacklist

mail# touch /var/amavis/spam_lovers
mail# chown vscan /var/amavis/whitelist
mail# chown vscan /var/amavis/blacklist
mail# chown vscan /var/amavis/spam_lovers
mail# echo spam@toping.net >> /var/amavis/spam_lovers

mail# echo notspam@toping.net >> /var/amavis/spam_lovers

修改/usr/local/etc/postfix/main.cf,添加
content_filter = smtp-amavis:[127.0.0.1]:10024
建立自动学习体系
mail# 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
mail# chmod a+x /usr/local/sbin/my-sa-learn.sh
建立学习知识库:
mail# /usr/local/bin/sa-learn --sync -p /var/amavis/.spamassassin/user_prefs

加入自动运行:
mail# crontab -e

5 0 * * * /usr/local/sbin/my-sa-learn.sh
重启服务器
测试
mail# su - vscan

mail# /usr/local/sbin/amavisd debug

启动另一个终端:
mail# telnet 127.0.0.1 10024
Trying 127.0.0.1...
Connected to localhost.toping.net.
Escape character is '^]'.
220 [127.0.0.1] ESMTP amavisd-new service ready
MAIL FROM:<webmaster@toping.net>
250 2.1.0 Sender webmaster@toping.net OK
RCPT TO:<webmaster@toping.net>

250 2.1.5 Recipient webmaster@toping.net 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
quit


Chapter 6. 安装webmail
如何使用本人修改的iGENUS for Postfix 1.01 bate
[下载]
http://mail.toping.net/igenus_for_postfix1.01bate.rar
webmail使用igenus,版本是iGENUS for Postfix 1.01 bate
建议下载本人修改的iGENUS for Postfix 1.01 bate
下载igenus到/usr/local/www/data/目录后解压
安装文档参考官方网站。
安装autorespond。
mail# cd /usr/ports/mail/autorespond
mail# make install clean

修改/usr/local/etc/apache/httpd.conf
Group www、User www修改为: Group postfix、User postfix

mail# cd /usr/local/www/data
mail# chown -R postfix:postfix phpMyAdmin

mail# cd /usr/local/etc
mail# cp php.ini-dist php.ini

修改/usr/local/etc/php.ini
register_globals = On
max_execution_time = 30 //改为60 (增加处理脚本的时间限制)
memory_limit = 8M //改为40M (这样才能发10M的附件)
post_max_size = 8M //改为10M
upload_max_filesize = 2M //改为10M

重启apache
mail# /usr/local/etc/rc.d/apache2.sh restart

Chapter 7. 查看系统状态
本节主要讲述phpSysInfo工具的安装和配置

安装phpSysInfo(2.2)
mail# cd /usr/ports/www/phpSysInfo

mail# make install clean
mail# cd /usr/local/www/data-dist/phpSysInfo
mail# cp config.php.new config.php

相关网址:
http://:www.toping.net/bbs 正在建设中........
http://osul.3322.org
http://www.xuki.org
附图1.

原文转自:http://www.ltesting.net