免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2043 | 回复: 0
打印 上一主题 下一主题

Qmail Mail Server完成报告 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-10 13:10 |只看该作者 |倒序浏览

Qmail Mail Server完成报告

一、实现的功能

SMTP服务器
POP3服务器
邮件病毒清除
邮件附件限制
垃圾邮件过滤
自动回复
邮件列表
Web管理
用户注册
WebMail
MRTG
二、所用的软件包
qmail – 世界上使用最广的邮件系统之一。此处使用的是netqmail-1.05的补丁集和
ucspi-tcp - ucspi-tcp软件包由一组工具组成。它们用来简单的建立客户机-服务器tcp后台程序
daemontools - 是inetd和winetd的代替品,用它来监听qmail-send,qmail-smtpd,qmail-pop3d
Vpopmail - 一个以qmail为基础的虚拟域管理包,其允许在一个IP地址添加多个虚拟域  
iGenus - 大麻的作品,PHP编写的Webmail
ezmlm – 一个快速,强大的邮件列表程序,可以通过qmailadmin对其进行配置
autorespond – 自动回复程序,可以很好的与qmailadmin配合使用
qmailadmin – 通过WEB管理vpopmail域的极好工具
SpamAssassin – 垃圾邮件防止,中文垃圾邮件清理就靠它了
Clamav - 一个免费的杀毒软件,此邮件系统的杀毒模块
MailDrop – 邮件过滤工具
qmail-scanner – 一个扫描邮件队列的插件,其调用Clamav和SpamAssassin进行清除邮件病毒和垃圾邮件过滤
qmailanalog – 分析难以理解的qmail日志,并每晚给出报告 .
isoqlog - 一个qmail日志分析工具,可以分析和统计qmail的运行日志,并生成漂亮的HTML格式的报表,如果服务器上已经安装WEB服务,管理员就可以通过浏览器来查看这些报表。相对于qmailanalog,isoqlog分析的项目稍微少一些。isoqlog可以生成多个邮件域的报表;对于每个邮件域,isoqlog可以统计出每天、每月、每年的邮件流量以及字节数,还生成相应的统计柱状图;对于每天的报表,isoqlog可以根据邮件投递的数量以及字节数的多少来对邮件用户进行排列。
MRTG - 多路由器通信监视器(MRTG)是在网络链路上监控通信负载的一件工具。 MRTG 产生包含图表的HTML网页,它可以将系统中的通信情况实时的显示在页面上。 我们可以在我们的系统上使用它来监控电子邮件和spam情况
netqmail-1.05.tar.gz
vpopmail-5.2.1.tar.gz
qmailadmin-1.0.6.tar.gz
ucspi-tcp-0.88.tar.gz
ucspi-tcp-0.88.errno.patch
cmd5checkpw-0.22.tar.gz
daemontools-0.76.tar.gz
daemontools-0.76.errno.patch
ezmlm-0.53.tar.gz
ezmlm-idx-0.42.tar.gz
ezmlm-idx-0.53.400.unified_41.patch
igenus_2_20030516_snap.tgz
maildrop-2.0.1.tar.bz2
clamav-0.80.tar.gz
qmailanalog-0.70.errno.patch
qmailanalog-0.70.tar.gz
qmailmrtg7-4.2.tar.gz
qmail-scanner-1.20.tgz
autorespond-2.0.2.tar.gz
vqregister-2.5.tar.gz
tai64nfrac-1.4.tar.gz
Qlogtools-3.1.tar.gz

三、安装步骤

①、安装Apache + PHP + MYSQL 服务器
# Apt-get install apache2 php4 php4-gd php4-mysql php4-cgi mysql-server mysql-devel mysql-client

②、编译安装ucspi-tcp-0.88

1.需要的软件及补丁

ucspi-tcp-0.88.tar.gz
ucspi-tcp-0.88.a_record.patch
ucspi-tcp-0.88.errno.patch
ucspi-tcp-0.88.nobase.patch

2.安装ucspi-tcp-0.88

# tar zxvf ucspi-tcp-0.88.tar.gz
# cd ucspi-tcp-0.88
# patch -p1
# patch -p1
# patch -p1
# make
# make setup check

③、安装qmail

1.需要的软件及补丁

netqmail-1.05.tar.gz

2.创建目录

# mkdir /var/qmail
# mkdir /var/qmail/alias

3.创建组及用户

# groupadd nofiles
# groupadd qmail
# useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent
# useradd qmaild -g nofiles -d /var/qmail -s /nonexistent
# useradd qmaill -g nofiles -d /var/qmail -s /nonexistent
# useradd qmailp -g nofiles -d /var/qmail -s /nonexistent
# useradd qmailq -g qmail -d /var/qmail -s /nonexistent
#useradd qmailr -g qmail -d /var/qmail -s /nonexistent
# useradd qmails -g qmail -d /var/qmail -s /nonexistent

4.打补丁及编绎安装qmail

# tar zxvf netqmail-1.05.tar.gz
# cd netqmail-1.05
# tar zxvf qmail-1.03.tar.gz
# cd qmail-1.03
# patch -p1
# make setup check
# ./config-fast mail.test.com

5.添加别名用户

# touch /var/qmail/alias/.qmail-root
# touch /var/qmail/alias/.qmail-postmaster
# touch /var/qmail/alias/.qmail-mailer-daemon

qmail的主要配置文件(/var/qmail/control目录下):

文件名 默认值 使用者用途
badmailfrom none qmail-smtpd 黑名单地址
bouncefrom MAILER-DAEMON qmail-send 退回邮件
bouncehost me qmail-send 退回邮件
concurrencylocal 10 qmail-send 本地同时投递邮件的数目
concurrencyremote 20 qmail-send 同时投递至远程主机的数目
defaultdomain me qmail-inject 默认域名
defaulthost me qmail-inject 默认主机名
databytes 0 qmail-smtpd 邮件的最大容量 (0=无限制)
doublebouncehost me qmail-send
doublebounceto postmaster qmail-send
envnoathost me qmail-send 没有"@"的默认域名
helohost me qmail-remote 主机名
idhost me qmail-inject Message-ID的主机名
localiphost me qmail-smtpd 本地IP的替代名
locals me qmail-send 传递至本地的域名
me 系统正式域名 various
morercpthosts none qmail-smtpd 第二个rcpthosts
percenthack none qmail-send 使用 "%"格式的域名
plusdomain me qmail-inject
qmqpservers none qmail-qmqpc QMQP服务器的IP地址
queuelifetime 604800 qmail-send 在队列中邮件保存的时间(秒)
rcpthosts none qmail-smtpd 接收邮件的域名
smtpgreeting me qmail-smtpd
smtproutes none qmail-remote
timeoutconnect 60 qmail-remote SMTP连接超时时间
timeoutremote 1200 qmail-remote 等待远程主机的时间
timeoutsmtpd 1200 qmail-smtpd SMTP客户连接超时的时间
virtualdomains none qmail-send 虚拟域名

④、安装vpopmail

1. 需要的软件包

vpopmail-5.2.1.tar.gz

2.创建目录

# mkdir /home/vpopmail
# mkdir /home/vpopmail/etc

3.添加用户和组

# groupadd vchkpw
# useradd -g vchkpw vpopmail

4.添加mysql的vpopmail用户,用于操作vpopmail数据库

# mysqladmin -u root password  密码             // 设置mysql的root密码。
# mysql -u root -p
mysql>create database vpopmail;
mysql>grant all on vpopmail.* to vpopmail@localhost identified by "vpopmail用户密码";
mysql>quit;

5.编译安装vpopmail

# tar zxvf vpopmail-5.2.1.tar.gz
# cd vpopmail-5.2.1
# vi vmysql.h       // 修改 vmysql.h 文件

=========================== vmysql.h =====================
#define MYSQL_UPDATE_SERVER "localhost"
#define MYSQL_UPDATE_USER "vpopmail"
#define MYSQL_UPDATE_PASSWD "vpopmail用户密码"

#define MYSQL_READ_SERVER "localhost"
#define MYSQL_READ_USER "vpopmail"
#define MYSQL_READ_PASSWD "vpopmail用户密码"

#else
#define TABLE_LAYOUT "pw_name char(32) not null, \
pw_domain char(64) not null, \   // 在后面加上\
pw_passwd char(40), \
pw_uid int, pw_gid int, \
pw_gecos char(48), \
pw_dir char(160), \  // 在后面加上\
pw_shell char(20), \
primary key (pw_name, pw_domain ) "

==========================================================

6.创建tcp.smtp

# vi /home/vpopmail/etc/tcp.smtp

==================== tcp.smtp ============================
127.0.0.1:allow,RELAYCLIENT=""
:allow
==========================================================

# cd /home/vpopmail/etc
# tcprules tcp.smtp.cdb tcp.smtp.tmp

7.进行编译
# ./configure
--prefix=/home/vpopmail
--enable-mysql=y
--enable-incdir=/usr/include/mysql
--enable-libdir=/usr/lib/mysql
--enable-default-domain=mail.test.com
--enable-passwd=n --enable-defaultquota=52428800s               //  10485760为10MB,20971520为20MB,52428800为50MB
--enable-tcprules-prog=/usr/local/bin/tcprules
--enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp
--enable-vpopuser=vpopmail
--enable-vpopgroup=vchkpw
--enable-ip-alias-domains=n
# make
# make install-strip

8.创建虚拟域

# cd /home/vpopmail/bin
# ./vadddomain 域名 密码   // 创建域的命令
# ./vadduser 用户名 密码                 //  (用户名要带域名,如test@mail.test.com)
# ./vdeldomain 域名  // 删除域的命令

⑤、设置smtp-auth

1.修改vchkpw的属性

# chmod 4755 vchkpw
# chown root.root vchkpw

2.安装cmd5checkpw

# tar zxvf cmd5checkpw-0.22.tar.gz
# cd cmd5checkpw-0.22
# mkdir -p /usr/man/man8
# make
# make install

⑥、创建qmail的启动脚本
# cp /var/qmail/boot/home /var/qmail/rc
# vi /var/qmail/rc                  //对rc文件进行修改,以决定投送方式:
================= rc =========================
#!/bin/sh

# Using splogger to send the log through syslog.
# Using dot-forward to support sendmail-style ~/.forward files.
# Using qmail-local to deliver messages to ~/Mailbox by default.

exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Maildir/ splogger qmail &
================== rc end ========================

# vi /var/qmail/smtp
=================== smtp =====================
#!/bin/sh

QMAILDUID=qmaild
NOFILESGID=nofiles

/usr/local/bin/tcpserver -H -R -l 0 -t 1 -v -p -x /home/vpopmail/etc/tcp.smtp.cdb -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd mail.test.com /home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2>&1 |
/var/qmail/bin/splogger smtpd 3 &
=================== smtp end ======================

# vi /var/qmail/pop3  // 编辑pop3服务的启动脚本
====================== pop3 ===================
#!/bin/sh

/usr/local/bin/tcpserver -H -R 0 pop3 /var/qmail/bin/qmail-popup mail.test.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &
======================= pop3 end ===================

# chmod 755 /var/qmail/rc
# chmod 755 /var/qmail/smtp
# chmod 755 /var/qmail/pop3

⑦、运行qmail并测试

# /var/qmail/rc
# /var/qmail/smtp
# /var/qmail/pop3
# ps aux | grep "qmail"
查看POP3和SMTP是否工作
# telnet 192.168.0.x 110
# telnet 192.168.0.x 25

⑧、安装ezmlm and ezmlm-idx使qmail支持邮件列表功能
建立mysql管理用户:
# mysql -u root -p
>use mysql;
>create database ezmlm;
>grant all on ezmlm.* to ezmlm@localhost identified by “ezmlmpassword";
>flush privileges;
>exit;
# mysqladmin -u root -p create ezmlm
2.ezmlm-idx包含有对ezmlm的修正和补充,他们是一个整体。
#cd /usr/src/qmail
# tar -zxvf ezmlm-0.53.tar.gz
# tar -zxvf ezmlm-idx-0.40.tar.gz
# mv -Rf ezmlm-idx-0.40/* ezmlm-0.53/   //将ezmlm-idx-0.40下的文件覆盖到ezmlm-0.53下
# cd ezmlm-0.53
# patch 支持
# make clean
# make man
# make ch_GB #汉字GB2312支持
修改conf-sqlcc文件
内容为:-I/usr/include/mysql
修改conf-sqlld
内容为: -L/usr/lib/mysql -lmysqlclient -lnsl -lm -lz
-lz是增加zip压缩支持
修改conf-bin
第一行:/var/qmail/bin/ezmlm
修改conf-man
第一行:/var/qmail/man
修改conf-qmail
第一行:/var/qmail
# make setup
修改/usr/local/qmail/bin/ezmlm/ezmlmrc将"To:##L@##H"修改为"To:@“,主要是修改用邮件客户端收到信之后,收件人地址显示格式错误。
邮件列表收到的信息乱码解决方法:
在/home/vpopmail/domains/cloud.com/maillistname/下建立一个charset的文件
# touch charset
# chown vpopmail:vchkpw charset
# chmod go-r charset
# vi charset 添加一行gb2312
这样发到
test@mail.test.com
的信息将可以正确的显示中文了!
3.在建立一个基于MySQL的maillist之前,必须保证ezmlm库中已存在一个对应的表
# /var/qmail/bin/ezmlm/ezmlm-mktab -d testlist | mysql -uezmlm -pezmlm -f ezmlm
这样就在ezmlm库中为testlist建立了一系列相关表格:
+————————+
| Tables |
+————————+
| testlist |
| testlist_allow |
| testlist_allow_slog |
| testlist_cookie |
| testlist_deny |
| testlist_deny_slog |
| testlist_digest |
| testlist_digest_cookie |
| testlist_digest_mlog |
| testlist_digest_slog |
| testlist_mlog |
| testlist_mod |
| testlist_mod_slog |
| testlist_slog |
+————————+
# mysqlshow -uezmlm -pezmlm ezmlm

⑨、安装webmail—igenus

1.软件包:igenus_2_20030516_snap.tgz

# tar zxvf igenus_2_20030516_snap.tgz -C /var/www/

2.建temp文件夹
# mv /var/www/igenus /var/www/mail
# cd /var/www/
# mkdir temp
# chmod -R 0755 temp
# chown -R vpopmail:vchkpw temp

3.修改apache2.conf
# vi /etc/apache2/apache2.conf
User Apache
Group Apache
修改为:
User vpopmail
Group vchkpw

# /etc/init.d/apache2 restart

4.修改config_inc.php文件
# vi /var/www/mail/config/config_inc.php
=============== config_inc.php ====================
$CFG_BASEPATH = "/var/www/mail";
$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_USER = 'vpopmail';
$CFG_MYSQL_PASS = 'vpopmail用户密码';
$CFG_MYSQL_DB = 'vpopmail';
==============================================

5.重新编制Mysql数据库表格

#mysql -u root -p
mysql>use vpopmail;
mysql>alter table vpopmail drop primary key;
mysql>alter table vpopmail add column pw_id int(5) NOT NULL primary key auto_increment;
mysql>create table address (
id int(11) unsigned NOT NULL auto_increment,
pw_id int(5) unsigned NOT NULL default '0',
name varchar(64) NOT NULL default '',
email varchar(128) NOT NULL default '',
UNIQUE KEY id (id),
KEY pw_id (pw_id)
) TYPE=MyISAM;

6.设置Qmail最大附件大小

# vi /var/qmail/control/databytes   // 设置文件中附件的大小,smtp方式是以qmail的databytes作限制的
# echo 4000000 >/var/qmail/control/databyte  //创建databytes并设置邮件最大为4M

7.限制单域的邮箱数量

# vi /home/vpopmail/domains/test.com/.qmailadmin-limits
===============.qmailadmin-limits ====================
maxpopaccounts 200          // 设置
@test.com
信箱总数为200个
default_quota 52428800s    // 设置信箱空间为50M
===============.qmailadmin-limits ====================

# chmod 700 /home/vpopmail/domains/ test.com /.qmailadmin-limits
# chown vpopmail:vchkpw /home/vpopmail/domains/ test.com /.qmailadmin-limits

8.用qmail封mail from

# vi/var/qmail/control/badmailfrom                 //这个控制文件实现拒收邮件功能的,每一个地址要单独一行,不用重起qmail。

例如:
test@mail.test.com 限制一个特定的用户
@test.com-----限制整个域中的邮件

9.设置 igenus 定义允许上传下载的邮件的大小

# vi /etc/php4/apache2/php.ini

max_execution_time = 60
memory_limit = 16M
post_max_size = 4M
upload_max_filesize = 4M
file_uploads = On
session.auto_start = 1
register_globals = On
session.bug_compat_42 = 1
session.bug_compat_warn = 0

SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 4242880

register_globals设为on  
sendmail_path = /usr/local/qmail/bin/qmail-inject               

⑩、编辑qmail自启动脚本

# vi /etc/init.d/qmail
===================== qmail ======================
#! /bin/sh
# description: qmail (include smtp and pop3) auto start/stop scripts.
. /lib/lsb/init-functions
case "$1" in
start)
echo -n "start qmail:"
/var/qmail/rc &
echo "."
echo -n "start smtp service:"
/var/qmail/smtp
echo "."
echo -n "start pop3 service:"
/var/qmail/pop3
echo "."
;;
stop)
echo "stop qmail:"
killproc qmail-send
killproc qmail-clean
killproc qmail-rspawn
killproc qmail-lspawn
killproc splogger
killproc tcpserver
;;
*)
exit 1
;;
esac
exit 0
==============================================
# chmod 755 /etc/init.d/qmail


①①、安装autorespond

# tar xzvf autorespond-2.0.2.tar.gz
# cd autorespond-2.0.2
# vi Makefile             //           将其中的INSTALL_DIR =修改为 /var/qmail/bin
# make
# make install
# cp autorespond /usr/local/bin

①②、安装qmailadmin-1.0.6.tar.gz

# tar xzvf qmailadmin-1.0.6.tar.gz
# cd qmailadmin-1.0.6
#./configure --enable-cgibindir=/var/www/cgi-bin --enable-htmldir=/var/www/   --disable-ezmlmdir
# make
# make install-strip

再一次执行
# chmod -R 0755 /var/www/mail
# chmod -R 0755 /var/www/images
# chown -R vpopmail:vchkpw /var/www/mail
# chown -R vpopmail:vchkpw /var/www/images


生成admin表
mysql>use vpopmail;
mysql>CREATE TABLE `admin` (
`id` tinyint(3) unsigned NOT NULL auto_increment,
`domain` varchar(128) NOT NULL default '',
`quota` smallint(5) unsigned NOT NULL default '0',
`total` smallint(5) unsigned NOT NULL default '0',
`createtime` timestamp(14) NOT NULL,
`login` char(1) NOT NULL default '',
`cur_total` smallint(5) NOT NULL default '0',
`cur_quota` smallint(5) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `domain` (`domain`)
) TYPE=MyISAM PACK_KEYS=1 AUTO_INCREMENT=1 ;

①③编译安装 MRTG
# cd /usr/src/qmail/
# tar -xzvf qmailmrtg7-4.0.tar.gz
#cd qmailmrtg7-4.0
# make
# make install
# mkdir /var/www /qmailmrtg
# cp qmail.mrtg.cfg index.html /var/www/qmailmrtg
# cd /var/www/qmailmrtg/
#修改 qmail.mrtg.cfg 和 index.html文件, 将所有出现FQDN 的地方都改成完整域名(例如: test.com).  
#可以修改 pop3和smtp所在的行, 设置MaxBytes参数来重写tcpserver中-cX所在行.
#还可以修改concurrency来重写concurrencyremote或concurrencylocal 的值. 如果这些文件在/var/qmail/control 目录下并不存在,则qmail默认的值为20.
#下面是我们的最后一步,将下面一段添加到crontab中, 以使我们能每五分钟升级一次MRTG数据. 运行如下命令:
# crontab -e
#添加下面一段 (使MRTG每五分钟运行一次) 然后退出crontab:
*/5 * * * * /usr/bin/mrtg /var/www/html/qmailmrtg/qmail.mrtg.cfg 2>&1 > /dev/null
#现在运行MRTG三次来安装它. 将会收到3次警告消息. 之后,将不会再收到警告了.
env LANG=C /usr/bin/mrtg /var/www/html/qmailmrtg/qmail.mrtg.cfg
①④、建立qmail服务器的防病毒系统

所需软件:
maildrop-2.0.1.tar.bz2
clamav-0.80.tar.gz
qmail-scanner-1.20.tgz

安装maildrop:
# tar xjvf maildrop-2.0.1.tar.bz2
# cd maildrop-2.0.1
# ./configure
# make
# make install-strip
# make install-man
安装clamav-0.65.tar.gz
# groupadd clamav
# useradd -g clamav -s /bin/false clamav
# tar zxvf clamav-0.65.tar.gz
# cd clamav-0.65
# ./configure
# make check
# make install

更新病毒库
运行freshclam
把freshclam加入crontab 定时更新病毒库
# vi /etc/clamav.conf  注释掉Example
# clamscan
# clamd
# clamdscan

安装qmail-scanner-1.20.tgz
# groupadd qscand
# useradd -g qscand -s /bin/false qscand
# tar zxvf qmail-scanner-1.20.tgz
# cd qmail-scanner-1.20
# ./configure --qmail-queue-binary=/var/qmail/bin/qmail-queue --admin=postmaster
--domain=mail.test.com --notify=sender,admin --local-domains=mail.test.com --lang=en_GB --debug=yes --unzip=yes
--scanners=clamscan --install
# chown qscand:qscand /var/qmail/bin/qmail-scanner-queue.pl
# chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl
# su test
# var/qmail/bin/qmail-scanner-queue.pl -z
# make
# make install

附加步骤:
# chown qscand:qscand /var/qmail/bin/qmail-scanner-queue
# chmod 4755 /var/qmail/bin/qmail-scanner-queue
# chmod 0755 /var/qmail/bin/qmail-scanner-queue.pl

然后用一个普通用户登陆,执行
# /var/qmail/bin/qmail-scanner-queue -z
# /var/qmail/bin/qmail-scanner-queue -g
修改环境变量
1.在你的qmail启动脚本加入
QMAILQUEUE=/var/qmail/bin/qmail-scanner-queue.pl
如果作了附加步骤用下面的
QMAILQUEUE=/var/qmail/bin/qmail-scanner-queue
#export QMAILQUEUE
2.修改qmail-scanner-queue.pl中的
my $clamscan_options="-r --disable-summary --max-recursion=10 --max-space=1000000";为
my $clamscan_options="-r --mbox --disable-summary --max-recursion=10 --max-space=1000000";

重起qmail 测试
这里有测试程序
# /software/qmail-scanner-1.20/contrib/test_installation.sh

主要的排错监测日志
/var/spool/qmailscan/quarantine.log
/var/spool/qmailscan/qmail-queue.log
/var/log/clamd.log
/var/log/maillog

①⑤、安装vqregister ---用户web注册程序
vqregister-2.5.tar.gz
# tar zxvf vqregister-2.5.tar.gz
# make
# make install
①⑥、编译安装qmailAnalog & qlogtools
安装 qmailanalog
# cd /usr/src/qmail
# tar zxvf qmailanalog-0.70.tar.gz
# cd qmailanalog-0.70
# patch 安装 qlogtools...
# cd /usr/src/qmail
# tar zxvf qlogtools-3.1.tar.gz
# cd qlogtools-3.1
# patch 安装tai64nlocal
# cd /usr/src/qmail
# tar xzvf tai64nfrac-1.4.tar.gz
# cd tai64nfrac-1.4/
# make install
设置Qmailanalog Report
# vi /var/qmail/qmailstats
==========================
#!/bin/sh  
# Qmailanalog invocation script  
PATH=/usr/local/qmailanalog/bin:/var/qmail/bin:/bin:/usr/bin:/usr/local/bin  
QMAILSTATS="/tmp/q.$$"  
umask 077  
cat /var/log/qmail/qmail-send/* /var/log/qmail/qmail-pop3d/* /var/log/qmail/qmail-smtpd/* | /usr/local/bin/tai64nlocal  |matchup | tai64n2tai >; $QMAILSTATS 5>;/dev/null  
DATE=`date +'%D'`  
echo "To: postmaster@heming.org " >;>; qmailstats.email  
echo "From: postmaster@heming.org" >;>; qmailstats.email  
echo "Subject: [SERVER] Nightly Qmail Stats Report for $DATE" >;>; qmailstats.email  
echo "" >;>; qmailstats.email  
zoverall ;>; qmailstats.email  
zfailures ;>; qmailstats.email  
zdeferrals ;>; qmailstats.email  
cat qmailstats.email | qmail-inject  
rm -f $QMAILSTATS  
rm -f qmailstats.email
==========================
# chmod 750 /var/qmail/qmailstats
设置crontab...
crontab -e
01 0 * * * /var/qmail/qmailstats

①⑦、编译安装isoqlog   
# cd /usr./src/qmail
# tar zxvf isoqlog-2.1.1.tar.gz
# cd isoqlog-2.1.1
# ./configure
# make
# make install
# make clean
# cd isoqlog
# mkdir /var/www/isoqlog
# cp -pr ./htmltemp/images ./htmltemp/library /var/www/isoqlog
配置isoqlog
# mv /etc/isoqlog.conf-dist /etc/isoqlog.conf
# vi /etc/isoqlog.conf
将下面红色部份改成你的安装目录和主机名称。
#isoqlog Configuration file
logtype = "qmail-multilog" #log type qmai-multilog, qmail-syslog, sendmail, postfix
logstore = "/var/log/qmail" #
domainsfile = "/etc/isoqlog.domains" #
outputdir = "/var/www/isoqlog" #html outpur directory
htmldir = "/usr/local/share/isoqlog/htmltemp"
langfile = "/usr/local/share/isoqlog/lang/english"
hostname = "mail.test.com"
maxsender = 100
maxreceiver = 100
maxtotal = 100
maxbyte = 100
保存并退出。
下一步是告诉isoqlog哪些虚拟域需要产生统计报表,如果想让mail服务器能够报告每个域的状态,只需要简单的创建了个链接即可:
ln -s /var/qmail/control/rcpthosts isoqlog.domains
现在,isoqlog应该能够正常运行了,运行如下命令测试一下效果:
/usr/local/bin/isoqlog
#通过如下页面查看输出结果:
http://maiil.test.com/isoqlog

#可以点击各个虚拟域名称显示其报表。
isoqlog即时提供报表,将如下内容加入crontab
crontab -e
58 * * * * /usr/local/bin/isoqlog 1>/dev/null 2>/dev/null
#每个小时的第58分钟运行一次
①⑧、附加功能:
1.注册新用户和找回密码
建立数据库
mysql -u root -p
mysql> use vpopmail;
mysql> CREATE TABLE password (
id int(11) unsigned NOT NULL auto_increment,
pw_name varchar(32) NOT NULL default '',
pw_domain varchar(64) NOT NULL default '',
problem varchar(32) NOT NULL default '',
answer varchar(32) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1;

2.自动转发
把发往自己邮箱的邮件定向到其他邮箱
mysql> use vpopmail;
mysql> CREATE TABLE forword (
id int(11) unsigned NOT NULL auto_increment,
pw_id int(5) NOT NULL default '0',
email varchar(64) NOT NULL default '',
success int(1) NOT NULL default '0',
save int(1) NOT NULL default '0',
PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1;


3.个人资料
mysql> use vpopmail;
mysql> CREATE TABLE personal (
id int(11) unsigned NOT NULL auto_increment,
pw_id int(5) NOT NULL default '0',
truename varchar(10) NOT NULL default '',
fax varchar(20) NOT NULL default '',
telephone varchar(15) NOT NULL default '',
sex int(1) NOT NULL default '0',
year int(4) NOT NULL default '',
month int(2)NOT NULL default '',
day int(2)NOT NULL default '',
education varchar(4) NOT NULL default '',
marital int(1) NOT NULL default '',
occupation varchar(15) NOT NULL default '',
companyname varchar(30) NOT NULL default '',
province varchar(6) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1;

4.通告栏
只有域管理员可以发给该域的所有用户通告,而该域的所有用户只可以查看通告
mysql> use vpopmail;
mysql> CREATE TABLE board (
id int(11) unsigned NOT NULL auto_increment,
num int(5) NOT NULL default '0',
title varchar(50) NOT NULL default '',
content varchar(255) NOT NULL default '',
host varchar(50) NOT NULL default '',
allhost int(1) NOT NULL default '0',
PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1;

5.收藏夹
mysql>use vpopmail;
mysql>CREATE TABLE stow (
id int(11) unsigned NOT NULL auto_increment,
pw_id int(5) NOT NULL default '0',
name varchar(64) NOT NULL default '',
http varchar(128) NOT NULL default '',
memo varchar(255) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1;

6.名片夹
mysql>use vpopmail;
mysql>CREATE TABLE card (
id int(11) unsigned NOT NULL auto_increment,
pw_id int(5) NOT NULL default '0',
addrname varchar(10) NOT NULL default '',
companyname varchar(30) NOT NULL default '',
address varchar(255) NOT NULL default '',
job varchar(255) NOT NULL default '',
telephone varchar(20) NOT NULL default '',
mobile varchar(15) NOT NULL default '',
email varchar(50) NOT NULL default '',
bearing varchar(4) NOT NULL default '',
note varchar(255) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1;


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/18119/showart_110655.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP