LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: xuki

在Linux下安装邮件服务器

[复制链接]
 楼主| 发表于 2004-10-26 18:45:27 | 显示全部楼层
在Linux下安装邮件服务器
(RHAS3+Qmail+Apache+PHP+smtp-auth+Vpopmail+MySQL+Igenus+ezmlm+autorespond+qmailadmin)

许靖



mail:xuki_007@163.net

QQ:19852439

MSN:seawolf_o@hotmail.com

版本:1.3

最后更新日期: 2004年10月26日


功能列表
SMTP服务器:SMTP-AUTH认证(Plain,Login,CRAM-MD5),TLS(SSL)支持
POP3服务器:CRAM-MD5,APOP,和SSL支持
IMAP服务器:TLS(SSL)支持
自动回复
邮件列表
Web管理
WebMail  

--------------------------------------------------------------------------------

安装准备
安装环境
这个安装过程基本上你只需要复制粘贴就可以完成.我在RedHat上安装成功,其他系统还没试过.

为了方便安装我在安装Redhat3.0时选了apache、php、mysql,注意mysql-devel和mysql-server开发包一定要装上.另外大家在安装LINUX时一定要装上软件开发和内核开发两个软件组,这样可以避免不必要的由于编译环境的问题而导致的安装问题,这点对于LINUX新手犹为重要。安装系统后,一般另需安装php-mysql这个包,在安装光碟第三张。AS3.0安装后,并没有mysql-server软件包,需自行下载安装,为方便大家,mysql-server软件包我已经与所有软件放在一个包中。

还要确认下面的软件也已经安装:

rpm -q gdbm
rpm -q gdbm-devel
rpm -q openssl
rpm -q openssl-devel
rpm -q stunnel
rpm -q krb5-devel

启动mysql server:
# /etc/rc.d/init.d/mysqld start
设置mysql root口令:
# mysqladmin -u root password ‘xukixu’(设置你的密码)
Enter passwod直接回车)

mysql的头文件和库文件分别在/usr/include/mysql和/usr/lib/mysql。
安装完Redhat3.0后,修改/etc/httpd/conf/httpd.conf,使web服务正常启用,为mysql添加root用户的密码。如果设置了防火墙,要打开服务器的www 80、smtp 25和pop3 110三个端口。

  

检查DNS设置
在开始之前,确保正确设置了DNS MX记录.例如使用"domain.com"作为邮件域,对MX记录进行测试:

在Linux下:

# host -t mx domain.com
domain.com. mail is handled by 10 mail.domain.com.
# host -t a mail.domain.com
mail.domain.com. has address xxx.xxx.xxx.xxx

在Windows下:

C:\>nslookup
Default Server: ns.domain.com
Address: xxx.xxx.xxx.xxx
>set type=mx
>domain.com
domain.com MX preference = 10, mail exchanger = mail.domain.com
mail.domain.com internet address = xxx.xxx.xxx.xxx
>exit

卸载已有的邮件系统
确认没有SMTP/POP/IMAP服务在运行:

/etc/init.d/sendmail stop
netstat -na | grep 25
netstat -na | grep 110
netstat -na | grep 143
ntsysv

删除已有的SMTP/POP/IMAP软件:

rpm -e --nodeps sendmail
rpm -e --nodeps postfix

下载软件
文中所用的软件:

netqmail-1.05.tar.gz

daemontools-0.76.tar.gz

daemontools-0.76.errno.patch

autorespond-2.0.4.tar.gz

toaster-scripts-0.6.tar.gz

qmail-toaster-0.6-1.patch.bz2

ezmlm-0.53.tar.gz

ezmlm-idx-0.42.tar.gz

courier-imap-2.2.2.20040207.tar.bz2

igenus_2.0.2_20040901_release.tgz

mysql-server-3.23.58-1.i386.rpm

qmailadmin-1.2.2.tar.gz

ucspi-tcp-0.88.a_record.patch

ucspi-tcp-0.88.errno.patch

ucspi-tcp-0.88.nobase.patch

ucspi-tcp-0.88.tar.gz

vpopmail-5.4.7.tar.gz

我把下文中所提到的软件打成了一个包,下载地址为:http://www.zioncom.net/qmail.tar.gz ;我一般把软件放在/home/pkg下面,根据个人习惯吧。

tar -xzf netqmail-1.05.tar.gz
cd netqmail-1.05
./collate.sh

注意:./collate.sh这一步不要忘


  


--------------------------------------------------------------------------------

安装软件
daemontools
daemontools是一个收集管理UNIX进程的工具.用它来监听qmail-send,qmail-smtpd,qmail-pop3d.
安装:
mkdir /package
chmod 1755 /package
cd /package
tar -zxvf /home/pkg/daemontools-0.76.tar.gz
cd admin/daemontools-0.76
patch -p1 < /home/pkg/netqmail-1.05/other-patches/daemontools-0.76.errno.patch
package/install
# 验证daemontools已经正常运行:
sleep 5
ps ax | grep svscan





--------------------------------------------------------------------------------

ucspi-tcp
ucspi-tcp包括tcpserver和tcpclient,一个命令行工具来建立client-server应用程序.

安装:

cd /home/pkg
tar zxvf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
patch -p1 < ../ucspi-tcp-0.88.a_record.patch
patch -p1 < ../ucspi-tcp-0.88.errno.patch
patch -p1 < ../ucspi-tcp-0.88.nobase.patch
make
make setup check
qmail
  

这个toaster补丁,是下面这几个补丁的组合:
smtp auth 0.4.2
qmail-queue (to allow for virus scanners)
maildir++ patch
support oversize dns packets (not necessary if you use dnscache)
mfcheck (check that the envelope sender has a dns entry)
tarpit delay
qregex (regular expression matching in badmailfrom and badmailto)
big concurrency (set the spawn limit above 255)



安装:
mkdir /var/qmail
groupadd nofiles
useradd -g nofiles -d /var/qmail/alias alias
useradd -g nofiles -d /var/qmail qmaild
useradd -g nofiles -d /var/qmail qmaill
useradd -g nofiles -d /var/qmail qmailp
groupadd qmail
useradd -g qmail -d /var/qmail qmailq
useradd -g qmail -d /var/qmail qmailr
useradd -g qmail -d /var/qmail qmails
# 在这里把vpopmail用户也加上
groupadd -g 89 vchkpw
useradd -u 89 -g vchkpw vpopmail

cd /home/pkg
tar -xzf toaster-scripts-0.6.tar.gz
cd netqmail-1.05/
bunzip2 -c ../qmail-toaster-0.6-1.patch.bz2 | patch -p0
cd netqmail-1.05

# 注:在RedHat上,需要为TLS补丁链接一个include文件:
ln -s /usr/kerberos/include/com_err.h /usr/kerberos/include/krb5.h \
/usr/kerberos/include/profile.h /usr/include/

make
make setup check

# 用你自己的主机名代替下面的mail.domain.com
./config-fast mail.domain.com

cd /var/qmail/alias
touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
chmod 644 /var/qmail/alias/.qmail*
cd -

echo 1 > /var/qmail/control/mfcheck
echo ./Maildir/ >/var/qmail/control/defaultdelivery

make cert
# 按提示输入公司信息

make tmprsadh
# 注:这里可能要多等一会

# 用"crontab -e"在crontab里增加下面这条,每天晚上更新temp keys
01 01 * * * /var/qmail/bin/update_tmprsadh > /dev/null 2>&1

创建服务:
mkdir -p /var/qmail/supervise/qmail-send/log
mkdir -p /var/qmail/supervise/qmail-smtpd/log
mkdir -p /var/qmail/supervise/qmail-pop3d/log
mkdir -p /var/qmail/supervise/qmail-pop3ds/log
chmod +t /var/qmail/supervise/qmail-send
chmod +t /var/qmail/supervise/qmail-smtpd
chmod +t /var/qmail/supervise/qmail-pop3d/log
chmod +t /var/qmail/supervise/qmail-pop3ds/log
cp /home/pkg/toaster-scripts-0.6/send.run /var/qmail/supervise/qmail-send/run
cp /home/pkg/toaster-scripts-0.6/send.log.run /var/qmail/supervise/qmail-send/log/run
cp /home/pkg/toaster-scripts-0.6/smtpd.run /var/qmail/supervise/qmail-smtpd/run
cp /home/pkg/toaster-scripts-0.6/smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run
cp /home/pkg/toaster-scripts-0.6/pop3d.run /var/qmail/supervise/qmail-pop3d/run
cp /home/pkg/toaster-scripts-0.6/pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run
cp /home/pkg/toaster-scripts-0.6/pop3ds.run /var/qmail/supervise/qmail-pop3ds/run
cp /home/pkg/toaster-scripts-0.6/pop3ds.log.run /var/qmail/supervise/qmail-pop3ds/log/run
echo 20 > /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming
chmod 755 /var/qmail/supervise/qmail-send/run
chmod 755 /var/qmail/supervise/qmail-send/log/run
chmod 755 /var/qmail/supervise/qmail-smtpd/run
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
chmod 755 /var/qmail/supervise/qmail-pop3d/run
chmod 755 /var/qmail/supervise/qmail-pop3d/log/run
chmod 755 /var/qmail/supervise/qmail-pop3ds/run
chmod 755 /var/qmail/supervise/qmail-pop3ds/log/run
mkdir -p /var/log/qmail/smtpd
mkdir -p /var/log/qmail/pop3d
mkdir -p /var/log/qmail/pop3ds
chown -R qmaill /var/log/qmail
启动脚本:
cp /home/pkg/toaster-scripts-0.6/rc /var/qmail/
cp /home/pkg/toaster-scripts-0.6/qmailctl /var/qmail/bin/
chmod 755 /var/qmail/rc
chmod 755 /var/qmail/bin/qmailctl
ln -s /var/qmail/bin/qmailctl /usr/bin
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail

# 用daemontools来启动qmail-send和qmail-smtpd
ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service

命令:
# 启动,停止,重启,查看队列等
qmailctl start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help

# 检查服务
netstat -an | grep 25
ps -ef | grep qmail
ps -efl | grep "service errors" | grep -v grep




--------------------------------------------------------------------------------

vpopmail
  

vpopmail是一个以qmail为基础的虚拟域管理包
vpopmail的用户和组我们前边已经建立了
配置:
mkdir -p ~vpopmail/etc
# 设置默认域
echo "domain.com" > ~vpopmail/etc/defaultdomain
# 设置smtp规则
echo '127.0.0.1:allow,RELAYCLIENT=""' > ~vpopmail/etc/tcp.smtp
cd ~vpopmail/etc ; tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
# 设置MySQL信息
echo "localhost|0|vpopmail|xukixu|vpopmail" > ~vpopmail/etc/vpopmail.mysql
chmod 640 ~vpopmail/etc/vpopmail.mysql
chown -R vpopmail.vchkpw ~vpopmail/etc
# 在MySQL里添加vpopmail的帐号
/usr/local/mysql/bin/mysql -uroot --pxukixu

CREATE DATABASE vpopmail;
GRANT select,insert,update,delete,create,drop ON vpopmail.*
TO vpopmail@localhost IDENTIFIED BY 'xukixu';
FLUSH PRIVILEGES;
QUIT
安装:
cd /home/pkg/
tar zxvf vpopmail-5.4.7.tar.gz
cd vpopmail-5.4.7


# 带数据库支持

./configure --enable-auth-module=mysql --enable-incdir=/usr/local/mysql/include --enable-libdir=/usr/local/mysql/lib --enable-mysql-logging --enable-mysql-limits --enable-valias --enable-logging=y


make
make install-strip
管理:
echo 'export PATH=$PATH:/home/vpopmail/bin' >> /etc/profile
source /etc/profile
# 添加域
vadddomain domain.com xukixu
# 参照/home/vpopmail/etc/vlimits.default
# 用MySQL-Front设置每个域的default_quota,default_maxmsgcount等
# 添加用户
vadduser -q 10485760S(邮箱大小) xukixu@domain.com 1234(密码)
vmoduser -c 许靖(邮箱描述) xukixu@domain.com
# 设置邮箱容量达到90%的警告信息
vi ~vpopmail/domains/.quotawarn.msg
From: 邮箱管理员
Reply-To: postmaster@domain.com
To: 邮箱用户
Subject: 邮箱空间警告
Mime-Version: 1.0
Content-Type: text/html; charset=gb2312
Content-Transfer-Encoding: base64
您的邮箱空间已经达到90%.如果想继续使用,请删除一些信件.
如果需要帮助,请联系邮箱管理员:
Email : postmaster@domain.com
# 设置邮箱已满的警告信息
echo "邮件被拒绝,用户的邮箱空间已满." > ~vpopmail/domains/.over-quota.msg
启动脚本:
cp /home/pkg/toaster-scripts-0.6/vpopmailctl /var/qmail/bin
ln -s /var/qmail/bin/vpopmailctl /usr/bin
chmod 755 /var/qmail/bin/vpopmailctl
# 用daemontools来启动qmail-pop3d和qmail-pop3ds
ln -s /var/qmail/supervise/qmail-pop3d /service
ln -s /var/qmail/supervise/qmail-pop3ds /service
命令:
# 启动,停止,重启,查看队列等
vpopmailctl start|stop|restart|stat|pause|cont|help
# 检查服务
netstat -an | grep 110
ps -ef | grep qmail
ps -efl | grep "service errors" | grep -v grep
# 用MySQL-Front查看数据库
补丁:
# 带数据库支持
cd /home/pkg/netqmail-1.05/netqmail-1.05
patch -p0 < /home/pkg/chkuser-0.6.mysql.patch
# 如果数据库是自定义安装的,还要把libmysqlclient.a复制到指定位置
mkdir -p /usr/local/mysql/lib/mysql/
cp /usr/local/mysql/lib/libmysqlclient.a /usr/local/mysql/lib/mysql/
make clean
make
qmailctl stop
make setup check
qmailctl start
安装选项参考:

                           vpopmail 5.4.5           
                ------------------------------------      
              vpopmail directory = /home/vpopmail
                             uid = 89
                             gid = 89
                   roaming users = OFF --disable-roaming-users (default)
               password learning = OFF --disable-learn-passwords (default)
                   md5 passwords = ON  --enable-md5-passwords (default)
                    file locking = ON  --enable-file-locking (default)
              vdelivermail fsync = OFF --disable-file-sync (default)
                   make seekable = ON  --enable-make-seekable (default)
                    clear passwd = ON  --enable-clear-passwd (default)
               user dir hashing  = ON  --enable-users-big-dir (default)
              address extensions = OFF --disable-qmail-ext (default)
                        ip alias = OFF --disable-ip-alias-domains (default)
                   domain quotas = OFF --disable-domainquotas (default)
                     auth module = mysql --enable-auth-module=mysql
               mysql replication = OFF --disable-mysql-replication (default)
                   mysql logging = ON  --enable-mysql-logging
                    mysql limits = ON  --enable-mysql-limits
                    MySQL valias = ON  --enable-valias
                        auth inc = -I/usr/include/mysql
                        auth lib = -L/usr/lib/mysql  -lmysqlclient -lz -lm
                system passwords = OFF --disable-passwd (default)
                      pop syslog = log success and errors including passwords
                                   --enable-logging=v
                    auth logging = ON  --enable-auth-logging (default)
    one domain per SQL table     = --disable-many-domains



--------------------------------------------------------------------------------

courier-imap


Courier-IMAP支持IMAP/SIMAP访问

安装:

cd /home/pkg
tar -xjf courier-imap-2.2.2.20040207.tar.bz2
cd courier-imap-2.2.2.20040207

# 作为vpopmail用户进行安装
chown -R vpopmail:vchkpw ../courier-imap-2.2.2.20040207
su vpopmail
./configure --with-redhat
# 注:Redhat用户需要使用"--with-redhat"选项

make
exit
make install-strip
make install-configure

cp courier-imap.sysvinit /etc/rc.d/init.d/courier-imap
chmod 755 /etc/rc.d/init.d/courier-imap
chkconfig --add courier-imap

配置:

# 修改文件/usr/lib/courier-imap/etc/authdaemonrc

authmodulelist="authvchkpw"

# 修改文件/usr/lib/courier-imap/etc/imapd

IMAPDSTART=YES

# 修改文件/usr/lib/courier-imap/etc/imapd-ssl

IMAPDSSLSTART=YES




启动:

/etc/rc.d/init.d/courier-imap start



--------------------------------------------------------------------------------

autorespond

Autorespond是一个自动回复工具,可以很好的与qmailadmin配合使用

安装:

cd /home/pkg
tar -xvzf autorespond-2.0.4.tar.gz
cd autorespond-2.0.4
make
make install

ezmlm

exmlm是一个快速,强大的邮件列表程序,可以通过qmailadmin对其进行配置

1.注意:为了启用maillist的MySQL支持,你必须首先:
建立mysql管理用户:(Ex:user:ezmlm,pass:ezmlm)
# mysql -u root –pxukixu
>use mysql;
>insert into user values('localhost','ezmlm','','y','y','y','y','y','y','y','y','y','y','y','y','y', 'y');
>update user set password=password('ezmlm') where user='ezmlm';
>FLUSH PRIVILEGES;
>exit;
建库:(Ex:database:ezmlm)
# mysqladmin -u root -pxukixu create ezmlm

2.安装:

cd /home/pkg
tar -xvzf ezmlm-0.53.tar.gz
tar -xvzf ezmlm-idx-0.42.tar.gz
cp -rf ezmlm-idx-0.42/* ezmlm-0.53/
cd ezmlm-0.53
patch < idx.patch
chmod u+x makelang
make mysql #MySQL 支持
make clean
make man
make ch_GB #汉字GB2312支持
修改conf-sqlcc文件
内容为:-I/usr/include/mysql

修改conf-sqlld
内容为: -L/usr/lib/mysql -lmysqlclient -lnsl -lm -lz

修改conf-bin
第一行:/var/qmail/bin/ezmlm

修改conf-man
第一行:/var/qmail/man

修改conf-qmail
第一行:/var/qmail

# make setup

3.在你建立一个基于MySQL的maillist之前,你必须保证ezmlm库中已存在一个对应的表:
Ex:你想建一个基于MySQL的maillist:testlist

# /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 -u root -pxukixu ezmlm




--------------------------------------------------------------------------------

qmailadmin
qmailadmin除了不能添加删除虚拟域外,几乎可以完成所有的虚拟域管理
安装:
cd /home/pkg
tar -xvzf qmailadmin-1.2.2.tar.gz
cd qmailadmin-1.2.2

./configure --enable-htmldir=/var/www/html --enable-cgibindir=/var/www/cgi-bin --enable-vpopuser=vpopmail --enable-autoresponder-bin=/usr/bin --enable-ezmlmdir=/var/qmail/bin/ezmlm --enable-maxusersperpage=20 --enable-maxaliasesperpage=20 --enable-modify-quota --enable-domain-autofill

make
make install-strip
cd /usr/local/share/qmailadmin/lang
mv en en.bak
cp zh-cn en

安装选项参考:

            qmailadmin 1.2.2
---------------------------------------
       cgi-bin dir = /var/www/cgi-bin
          html dir = /var/www/html
         image dir = /var/www/html/images/qmailadmin
         image URL = /images/qmailadmin
      template dir = /usr/local/share/qmailadmin
         qmail dir = /var/qmail
      vpopmail dir = /home/vpopmail
   autorespond dir = /usr/bin
         ezmlm dir = /usr/local/bin/ezmlm
         ezmlm idx = yes
   mysql for ezmlm = yes
              help = no
      modify quota = yes
   domain autofill = yes
modify spam check = no


--------------------------------------------------------------------------------

安装并运行igenus
1.到http://www.igenus.org下载最 ... 0040901_release.tgz

#tar zxvf igenus_2.0.2_20040901_release.tgz -C /var/www/
#cd /var/www/
#rm -rf html/
#mv igenus html

2.建temp文件夹

cd /var/www/html/
#mkdir temp

#chmod -R 0755 temp

#chown -R vpopmail:vchkpw temp
#mkdir /home/netdisk

#chmod -R 0755 /home/netdisk

#chown -R vpopmail:vchkpw /home/netdisk
#chmod -R 0755 /var/www/html/

#chown -R vpopmail:vchkpw /var/www/html/
3.修改httpd.conf

#vi /etc/httpd/conf/httpd.conf
Group Apache

User Apache

修改为:
Group vchkpw
User vpopmail

DocumentRoot "/var/www/html/"

AddDefaultCharset ISO-8859-1

修改为

AddDefaultCharset GB2312 //使默认页面为中文

#/etc/rc.d/init.d/httpd restart //重启apache,使修改生效

4.修改config_inc.php文件

# cd /var/www/html/igenus/config

# vi config_inc.php

$CFG_BASEPATH = "/var/www/html/igenus"; \\改成你安装的目录

$CFG_MYSQL_HOST = 'localhost';

$CFG_MYSQL_USER = 'vpopmail';

$CFG_MYSQL_PASS = 'xukixu'; \\改成你的密码

$CFG_MYSQL_DB = 'vpopmail';

$CFG_TEMP = $CFG_BASEPATh."/temp"; \\改成你安装的目录的当前目录下

5.重新编制Mysql数据库表格
删除之前创建的域名
#/home/vpopmail/bin/vdeldomain domain.com

/usr/local/mysql/bin/mysql -uroot --pxukixu
alter table vpopmail.vpopmail drop primary key;
alter table vpopmail.vpopmail add column pw_id int(5) unsigned NOT NULL PRIMARY KEY auto_increment;
alter table vpopmail.vpopmail add KEY pw_name (pw_name,pw_domain);
编辑/var/www/html/docs/iGENUS.sql
# phpMyAdmin SQL Dump# version 2.5.3# http://www.phpmyadmin.net## Host: localhost# Generation Time: Jun 04, 2004 at 11:26 AM# Server version: 3.23.55# PHP Version: 4.3.0# # Database : `vpopmail`# # --------------------------------------------------------## Table structure for table `address`#use vpopmail;               //加入这一行CREATE TABLE `address` (  `id` int(11) unsigned NOT NULL auto_increment,  `pw_id` int(5) 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 PACK_KEYS=1 ;# --------------------------------------------------------并删除创建'lastauth'表部份。

运行
#mysql -u root -pxukixu </var/www/html/docs/iGENUS.sql   导入数据表。

6. 设置igenus 定义允许上传下载的邮件的大小
编辑/etc/php.ini
    max_execution_time=60
    memory_limit=20M
    post_max_filesize=10M
    file_uploads=on
    upload_max_filesize=10M
    register_globals=On
    session.bug_compat_42=0
    session.bug_compat_warn=0
    Sendmail = /var/qmail/bin/qmail-inject
7.编辑/etc/http/conf/httpd.conf

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    DirectoryIndex index.php index.html

     NameVirtualHost *

     <VirtualHost *>
       ServerName mail.domain.net
       DocumentRoot /var/www/htdocs/igenus
</VirtualHost>
重启apache:
#service httpd restart

8. 修改index.php,signup.php,submit.php,help.php这几个文件中有关域名的地方,将它改成自己的域名.

9.如果需要,用vadddomain和vadduser添加新域名和新用户。

最后打开浏览器,输入http://domain.com/,就可以访问网站了。
10.Qmail限制附件的大小

在/var/qmail/control/databytes 文件中设置附件的大小,可以实现对qmail附件大小的限制,一般安装完成后,这个文件是没有的,你可以自己创建。

smtp方式是以qmail的databytes作限制的

创建databytes并设置邮件最大为4m

# echo 4000000 >/var/qmail/control/databyte

11.限制单域的邮箱数量

vi /home/vpopmail/domains/domain.com/.qmailadmin-limits

maxpopaccounts 200

default_quota 52428800s

chmod 700 /home/vpopmail/domains/domain.com/.qmailadmin-limits

chwod vpopmail:vchkpw /home/vpopmail/domains/domain.com/.qmailadmin-limits
这样就把邮箱总数限制在200个,每个邮箱为50M了

12.用qmail封mailfrom

vi/var/qmail/control/badmailfrom

这个控制文件实现拒收邮件功能的,每一个地址要单独一行。而且,不用重起qmail就能生效。例如:

peng@96633.net -----限制一个特定的用户

@sina.com -----限制整个域中的邮件


--------------------------------------------------------------------------------

测试
测试igenus
http://domain.com/

测试qmailadmin
http://domain.com/cgi-bin/qmailadmin

测试SMTP认证
         # telnet localhost 25

           Trying 127.0.0.1...

Connected to mail.domain.com (127.0.0.1).
Escape character is '^]'.
220 mail. domain.com ESMTP
EHLO hostname
250-mail.domain.com
250-AUTH LOGIN CRAM-MD5 PLAIN
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING
250 8BITMIME
测试POP3
# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
+OK Hello there.
user xy.wang@domain.com
+OK Password required.
pass [password]
+OK logged in.
quit
+OK Bye-bye.
Connection closed by foreign host.

  


--------------------------------------------------------------------------------

邮件系统维护:
查看邮件日志
#cat /var/log/maillog

设置Qmail用户邮箱的容量
# cd /home/vpopmail/bin
#./vsetuserqutoa  domain.com    10500000s   --domain.com这个域,都设成10m的
#./vsetuserqutoa  xuki@domain.com   10500000s  ---只把xuki@domain.com这个用户单独设置为10m。

        批量添加用户

例1:

新建一文件 batchadduser.sh,将以下内容拷入文件中保存 ,运行chmod u+x batchadduser.sh使其可执行。

#!/bin/bash
#batchadduser.sh: batch add mail user.
#install step.
#chmod u+x batchadduser
#./batchadduser.sh domain datafile
if [ $# -lt 2 ]
then
echo "usage: $0 domain datafile"
exit 1
fi
domain=$1
datafile=$2
addcmd=/home/vpopmail/bin/vadduser
while read username passwd
do
$addcmd $username@$domain $passwd
done < $datafile

user文件内容的格式
username1 passwd
username2 passwd2
............


运行batchadduser.sh user即可批量添加用户。

例2:

我把用户名放到一个文本文件中,一个名字一行,密码和它的帐号一致,用户自己再去改密码。

while read line
do
echo $line
./vadduser $line $line
done < user


有选择地清理不需要的Mail Queue


1、处理队列中的邮件:

如想在队列中的邮件马上传递,可以
# kill -HUP qmail-send
要删除队列中的邮件
1) 停止QMAIL
2) mv /var/qmail/queue/lock /var/qmail/;find /var/qmail/queue/ -type f -exec rm {} \; ;mv /var/qmail/lock /var/qmail/queue/
3) 重启QMAIL.
队列中的邮件包含在以下目录中 /var/qmail/queue/{info,mess,remote,local}/hash/#number
2、在邮件队列中快速删除从一个地方发过来但又不存在的邮件 设bad.jite.com是这个域。可以键入以下命令
# echo # > ~alias/.qmail-baddomain-default
# echo bad.jite.com:alias-baddomain>> /var/qmail/control/virtualdomains
# echo bad.jite.com:127.0.0.1 >> /var/qmail/control/smtproutes
然后运行/var/qmail/bin/qmail-tcpok,给qmail-send 一个HUP信号
3、删除队列中的大量广告信息

先停止QMAIL.
1) 停止qmail, qmail-smtpd
2) 在以下默认目录下 /var/qmail/queue/mess
find /var/qmail/queue/mess -type f -exec grep "^Subject:dss" {} \; -print -exec rm {} \;
3) 运行queue-fix清除相关文件,
4) 重启qmail.

使用sh备份qmail+mysql数据到指定的ftp地址的方法
备份vpopmail的domains目录、qmail的control目录和mysql的var数据存放目录,使用crontab定时进行操作。下面是脚本文件,具体的目录视自己的系统更改:
mkdir /var/qmailbakup
cd /var/qmailbakup
touch qmailbakup.sh
chmod 755 qmailbakup .sh

vi qmailbakup.sh
[code:1:d480555598]
#!/bin/sh

DATE=`date +%Y-%m-%d-%H`

cd /var/qmailbakup/

tar cvzf domains.$DATE.tar.gz /home/vpopmail/domains
tar cvzf control.$DATE.tar.gz /var/qmail/control
tar cvzf mysql.$DATE.tar.gz /usr/local/mysql/var

ftp -n 192.168.0.21 << ! //你的ftp服务器的地址
user qmail qmailbakup //ftp用户名和密码,注意要有put权限
binary
put domains.$DATE.tar.gz
put control.$DATE.tar.gz
put mysql.$DATE.tar.gz
bye
!

rm -f domains.$DATE.tar.gz control.$DATE.tar.gz mysql.$DATE.tar.gz //删除本机产生的文件,如果你想在本服务器也保存一份备份,去掉该项即可。
[/code:1:d480555598]

使用crontab定时执行:
vi /etc/crontab
00 20 * * 0-6 /var/qmailbakup/qmailbakup.sh

这样每天晚上8:00执行改备份程序。

给新浪发信的解决办法
qmail
echo "我的邮件服务器的真实域名(A记录)" > /var/qmail/control/helohost

临时限制一个用户的pop3
vmoduser -p email_addr or domain ( for the entire domain )

修改默认的域名
A:
要更改haohao.com为默认域。
方法:
更改~qmail/control/
defaultdomain
me
plusdomains
逐一更改启动pop3和 smtp的启动脚本:
修改:email.3sk.com为haohaoo.com
在最上边添加:export VPOPMAIL_DOMAIN=haohaoo.com

将一个系统的Qmail用户完整地转移到另一个系统
A:
a.cdb配置的?那么请把/home/vpopmail/domains这个文件夹备份好就可以了。用户和密码文件,还有用户信件都在这个目录下。
还应该备份/var/qmail/control下的相关配置文件。

b.如果是以MYSQL数据库方式来存储用户认证信息的
只需要备份
~vpopmail/domain下的所有邮件
/var/qmail/control的配置文件
MYSQL数据库目录下的vpopmail库目录。一般是/var/lib/mysql(RPM)、/usr/local/mysql/data、/usr/local/mysql/var下面。


把一邮件域的名字比如a.com更改为b.com,如何实现
以下几个步骤:
1、cd /home/vpopmail/domains
mv a.com b.com

2、把vpopmail数据库的vpopmail表导出把所有a.com改为b.com,然后删除vpopmail表,再导入.

3、把把vpopmail数据库的dir_control表的a.com改为b.com

4、在/home/qmail/control 目录下把 virtualdomains和rcpthosts下的的a.com改为b.com.

5、在/home/qmail/users目录下把assign文件的a.com改为b.com

6、需要运行qmail-newu重新生成cdb。assign只是配置文件,cdb才是实际的数据文件。

加快 qmail 投递邮件速度
A: /var/qmail/control下面是qmail的控制文件,这两个文件:
Concurrentcylocal default: 10 最大本地同时传送数
Concurrencyremote default: 20 最大远程同时传送数

更改域的默认管理账号
A: vmoduser有个-a参数,可以赋予用户管理权限。

如果想全面禁用postmaster的特殊权限话,就只能改源代码了。

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 虚拟域名


Qmail限制附件大小
我的配置经验==》Qmail限制附件大小:
1.在/var/qmail/control/databytes 中设置附件大小,这个文件要手动建立,直接输入数字就行,默认单位为bytes,如10485760为10M;
2.Webmail中发送附件默认只支持500K左右,如想支持5M附件,修改如下文件
# vi /etc/php.ini

post_max_filesize=5M //320行
upload_max_filesize=5M //405行
session.bug_compat_42=0 //加入到641行
session.bug_compat_warn=0

# vi /etc/httpd/conf.d/php.conf
LimitRequestBody 5242880 //修改14行的值为5M

WebMail上传附件大小限制 (解决上传文件不能大于512KB的问题)
更改/etc/httpd/conf.d/php.conf:

LimitRequestBody 524288中的524288正好跟512KB相等,将其更改为10485760,设置允许最大上传的附件为10MB。
 楼主| 发表于 2004-10-26 18:47:41 | 显示全部楼层
以上为最新版 1.3,参考<<Qmail Toaster 中文版>>结合自身需求而成。
 楼主| 发表于 2004-10-26 18:52:15 | 显示全部楼层
后面想做防垃圾邮件、杀毒和MRTG,需求这方面说明文章的哥们顶啊!!
 楼主| 发表于 2004-10-26 18:52:56 | 显示全部楼层
在Linux下安装邮件服务器
(RHAS3+Qmail+Apache+PHP+smtp-auth+Vpopmail+MySQL+Igenus+ezmlm+autorespond+qmailadmin)

许靖



mail:xuki_007@163.net

QQ:19852439

MSN:seawolf_o@hotmail.com

版本:1.3

最后更新日期: 2004年10月26日


功能列表
SMTP服务器:SMTP-AUTH认证(Plain,Login,CRAM-MD5),TLS(SSL)支持
POP3服务器:CRAM-MD5,APOP,和SSL支持
IMAP服务器:TLS(SSL)支持
自动回复
邮件列表
Web管理
WebMail  

--------------------------------------------------------------------------------

安装准备
安装环境
这个安装过程基本上你只需要复制粘贴就可以完成.我在RedHat上安装成功,其他系统还没试过.

为了方便安装我在安装Redhat3.0时选了apache、php、mysql,注意mysql-devel和mysql-server开发包一定要装上.另外大家在安装LINUX时一定要装上软件开发和内核开发两个软件组,这样可以避免不必要的由于编译环境的问题而导致的安装问题,这点对于LINUX新手犹为重要。安装系统后,一般另需安装php-mysql这个包,在安装光碟第三张。AS3.0安装后,并没有mysql-server软件包,需自行下载安装,为方便大家,mysql-server软件包我已经与所有软件放在一个包中。

还要确认下面的软件也已经安装:

rpm -q gdbm
rpm -q gdbm-devel
rpm -q openssl
rpm -q openssl-devel
rpm -q stunnel
rpm -q krb5-devel

启动mysql server:
# /etc/rc.d/init.d/mysqld start
设置mysql root口令:
# mysqladmin -u root password ‘xukixu’(设置你的密码)
Enter passwod直接回车)

mysql的头文件和库文件分别在/usr/include/mysql和/usr/lib/mysql。
安装完Redhat3.0后,修改/etc/httpd/conf/httpd.conf,使web服务正常启用,为mysql添加root用户的密码。如果设置了防火墙,要打开服务器的www 80、smtp 25和pop3 110三个端口。

  

检查DNS设置
在开始之前,确保正确设置了DNS MX记录.例如使用"domain.com"作为邮件域,对MX记录进行测试:

在Linux下:

# host -t mx domain.com
domain.com. mail is handled by 10 mail.domain.com.
# host -t a mail.domain.com
mail.domain.com. has address xxx.xxx.xxx.xxx

在Windows下:

C:\>nslookup
Default Server: ns.domain.com
Address: xxx.xxx.xxx.xxx
>set type=mx
>domain.com
domain.com MX preference = 10, mail exchanger = mail.domain.com
mail.domain.com internet address = xxx.xxx.xxx.xxx
>exit

卸载已有的邮件系统
确认没有SMTP/POP/IMAP服务在运行:

/etc/init.d/sendmail stop
netstat -na | grep 25
netstat -na | grep 110
netstat -na | grep 143
ntsysv

删除已有的SMTP/POP/IMAP软件:

rpm -e --nodeps sendmail
rpm -e --nodeps postfix

下载软件
文中所用的软件:

netqmail-1.05.tar.gz

daemontools-0.76.tar.gz

daemontools-0.76.errno.patch

autorespond-2.0.4.tar.gz

toaster-scripts-0.6.tar.gz

qmail-toaster-0.6-1.patch.bz2

ezmlm-0.53.tar.gz

ezmlm-idx-0.42.tar.gz

courier-imap-2.2.2.20040207.tar.bz2

igenus_2.0.2_20040901_release.tgz

mysql-server-3.23.58-1.i386.rpm

qmailadmin-1.2.2.tar.gz

ucspi-tcp-0.88.a_record.patch

ucspi-tcp-0.88.errno.patch

ucspi-tcp-0.88.nobase.patch

ucspi-tcp-0.88.tar.gz

vpopmail-5.4.7.tar.gz

我把下文中所提到的软件打成了一个包,下载地址为:http://www.zioncom.net/qmail.tar.gz ;我一般把软件放在/home/pkg下面,根据个人习惯吧。

tar -xzf netqmail-1.05.tar.gz
cd netqmail-1.05
./collate.sh

注意:./collate.sh这一步不要忘


  


--------------------------------------------------------------------------------

安装软件
daemontools
daemontools是一个收集管理UNIX进程的工具.用它来监听qmail-send,qmail-smtpd,qmail-pop3d.
安装:
mkdir /package
chmod 1755 /package
cd /package
tar -zxvf /home/pkg/daemontools-0.76.tar.gz
cd admin/daemontools-0.76
patch -p1 < /home/pkg/netqmail-1.05/other-patches/daemontools-0.76.errno.patch
package/install
# 验证daemontools已经正常运行:
sleep 5
ps ax | grep svscan





--------------------------------------------------------------------------------

ucspi-tcp
ucspi-tcp包括tcpserver和tcpclient,一个命令行工具来建立client-server应用程序.

安装:

cd /home/pkg
tar zxvf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
patch -p1 < ../ucspi-tcp-0.88.a_record.patch
patch -p1 < ../ucspi-tcp-0.88.errno.patch
patch -p1 < ../ucspi-tcp-0.88.nobase.patch
make
make setup check
qmail
  

这个toaster补丁,是下面这几个补丁的组合:
smtp auth 0.4.2
qmail-queue (to allow for virus scanners)
maildir++ patch
support oversize dns packets (not necessary if you use dnscache)
mfcheck (check that the envelope sender has a dns entry)
tarpit delay
qregex (regular expression matching in badmailfrom and badmailto)
big concurrency (set the spawn limit above 255)



安装:
mkdir /var/qmail
groupadd nofiles
useradd -g nofiles -d /var/qmail/alias alias
useradd -g nofiles -d /var/qmail qmaild
useradd -g nofiles -d /var/qmail qmaill
useradd -g nofiles -d /var/qmail qmailp
groupadd qmail
useradd -g qmail -d /var/qmail qmailq
useradd -g qmail -d /var/qmail qmailr
useradd -g qmail -d /var/qmail qmails
# 在这里把vpopmail用户也加上
groupadd -g 89 vchkpw
useradd -u 89 -g vchkpw vpopmail

cd /home/pkg
tar -xzf toaster-scripts-0.6.tar.gz
cd netqmail-1.05/
bunzip2 -c ../qmail-toaster-0.6-1.patch.bz2 | patch -p0
cd netqmail-1.05

# 注:在RedHat上,需要为TLS补丁链接一个include文件:
ln -s /usr/kerberos/include/com_err.h /usr/kerberos/include/krb5.h \
/usr/kerberos/include/profile.h /usr/include/

make
make setup check

# 用你自己的主机名代替下面的mail.domain.com
./config-fast mail.domain.com

cd /var/qmail/alias
touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
chmod 644 /var/qmail/alias/.qmail*
cd -

echo 1 > /var/qmail/control/mfcheck
echo ./Maildir/ >/var/qmail/control/defaultdelivery

make cert
# 按提示输入公司信息

make tmprsadh
# 注:这里可能要多等一会

# 用"crontab -e"在crontab里增加下面这条,每天晚上更新temp keys
01 01 * * * /var/qmail/bin/update_tmprsadh > /dev/null 2>&1

创建服务:
mkdir -p /var/qmail/supervise/qmail-send/log
mkdir -p /var/qmail/supervise/qmail-smtpd/log
mkdir -p /var/qmail/supervise/qmail-pop3d/log
mkdir -p /var/qmail/supervise/qmail-pop3ds/log
chmod +t /var/qmail/supervise/qmail-send
chmod +t /var/qmail/supervise/qmail-smtpd
chmod +t /var/qmail/supervise/qmail-pop3d/log
chmod +t /var/qmail/supervise/qmail-pop3ds/log
cp /home/pkg/toaster-scripts-0.6/send.run /var/qmail/supervise/qmail-send/run
cp /home/pkg/toaster-scripts-0.6/send.log.run /var/qmail/supervise/qmail-send/log/run
cp /home/pkg/toaster-scripts-0.6/smtpd.run /var/qmail/supervise/qmail-smtpd/run
cp /home/pkg/toaster-scripts-0.6/smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run
cp /home/pkg/toaster-scripts-0.6/pop3d.run /var/qmail/supervise/qmail-pop3d/run
cp /home/pkg/toaster-scripts-0.6/pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run
cp /home/pkg/toaster-scripts-0.6/pop3ds.run /var/qmail/supervise/qmail-pop3ds/run
cp /home/pkg/toaster-scripts-0.6/pop3ds.log.run /var/qmail/supervise/qmail-pop3ds/log/run
echo 20 > /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming
chmod 755 /var/qmail/supervise/qmail-send/run
chmod 755 /var/qmail/supervise/qmail-send/log/run
chmod 755 /var/qmail/supervise/qmail-smtpd/run
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
chmod 755 /var/qmail/supervise/qmail-pop3d/run
chmod 755 /var/qmail/supervise/qmail-pop3d/log/run
chmod 755 /var/qmail/supervise/qmail-pop3ds/run
chmod 755 /var/qmail/supervise/qmail-pop3ds/log/run
mkdir -p /var/log/qmail/smtpd
mkdir -p /var/log/qmail/pop3d
mkdir -p /var/log/qmail/pop3ds
chown -R qmaill /var/log/qmail
启动脚本:
cp /home/pkg/toaster-scripts-0.6/rc /var/qmail/
cp /home/pkg/toaster-scripts-0.6/qmailctl /var/qmail/bin/
chmod 755 /var/qmail/rc
chmod 755 /var/qmail/bin/qmailctl
ln -s /var/qmail/bin/qmailctl /usr/bin
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail

# 用daemontools来启动qmail-send和qmail-smtpd
ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service

命令:
# 启动,停止,重启,查看队列等
qmailctl start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help

# 检查服务
netstat -an | grep 25
ps -ef | grep qmail
ps -efl | grep "service errors" | grep -v grep




--------------------------------------------------------------------------------

vpopmail
  

vpopmail是一个以qmail为基础的虚拟域管理包
vpopmail的用户和组我们前边已经建立了
配置:
mkdir -p ~vpopmail/etc
# 设置默认域
echo "domain.com" > ~vpopmail/etc/defaultdomain
# 设置smtp规则
echo '127.0.0.1:allow,RELAYCLIENT=""' > ~vpopmail/etc/tcp.smtp
cd ~vpopmail/etc ; tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
# 设置MySQL信息
echo "localhost|0|vpopmail|xukixu|vpopmail" > ~vpopmail/etc/vpopmail.mysql
chmod 640 ~vpopmail/etc/vpopmail.mysql
chown -R vpopmail.vchkpw ~vpopmail/etc
# 在MySQL里添加vpopmail的帐号
/usr/local/mysql/bin/mysql -uroot --pxukixu

CREATE DATABASE vpopmail;
GRANT select,insert,update,delete,create,drop ON vpopmail.*
TO vpopmail@localhost IDENTIFIED BY 'xukixu';
FLUSH PRIVILEGES;
QUIT
安装:
cd /home/pkg/
tar zxvf vpopmail-5.4.7.tar.gz
cd vpopmail-5.4.7


# 带数据库支持

./configure --enable-auth-module=mysql --enable-incdir=/usr/local/mysql/include --enable-libdir=/usr/local/mysql/lib --enable-mysql-logging --enable-mysql-limits --enable-valias --enable-logging=y


make
make install-strip
管理:
echo 'export PATH=$PATH:/home/vpopmail/bin' >> /etc/profile
source /etc/profile
# 添加域
vadddomain domain.com xukixu
# 参照/home/vpopmail/etc/vlimits.default
# 用MySQL-Front设置每个域的default_quota,default_maxmsgcount等
# 添加用户
vadduser -q 10485760S(邮箱大小) xukixu@domain.com 1234(密码)
vmoduser -c 许靖(邮箱描述) xukixu@domain.com
# 设置邮箱容量达到90%的警告信息
vi ~vpopmail/domains/.quotawarn.msg
From: 邮箱管理员
Reply-To: postmaster@domain.com
To: 邮箱用户
Subject: 邮箱空间警告
Mime-Version: 1.0
Content-Type: text/html; charset=gb2312
Content-Transfer-Encoding: base64
您的邮箱空间已经达到90%.如果想继续使用,请删除一些信件.
如果需要帮助,请联系邮箱管理员:
Email : postmaster@domain.com
# 设置邮箱已满的警告信息
echo "邮件被拒绝,用户的邮箱空间已满." > ~vpopmail/domains/.over-quota.msg
启动脚本:
cp /home/pkg/toaster-scripts-0.6/vpopmailctl /var/qmail/bin
ln -s /var/qmail/bin/vpopmailctl /usr/bin
chmod 755 /var/qmail/bin/vpopmailctl
# 用daemontools来启动qmail-pop3d和qmail-pop3ds
ln -s /var/qmail/supervise/qmail-pop3d /service
ln -s /var/qmail/supervise/qmail-pop3ds /service
命令:
# 启动,停止,重启,查看队列等
vpopmailctl start|stop|restart|stat|pause|cont|help
# 检查服务
netstat -an | grep 110
ps -ef | grep qmail
ps -efl | grep "service errors" | grep -v grep
# 用MySQL-Front查看数据库
补丁:
# 带数据库支持
cd /home/pkg/netqmail-1.05/netqmail-1.05
patch -p0 < /home/pkg/chkuser-0.6.mysql.patch
# 如果数据库是自定义安装的,还要把libmysqlclient.a复制到指定位置
mkdir -p /usr/local/mysql/lib/mysql/
cp /usr/local/mysql/lib/libmysqlclient.a /usr/local/mysql/lib/mysql/
make clean
make
qmailctl stop
make setup check
qmailctl start
安装选项参考:

                           vpopmail 5.4.5           
                ------------------------------------      
              vpopmail directory = /home/vpopmail
                             uid = 89
                             gid = 89
                   roaming users = OFF --disable-roaming-users (default)
               password learning = OFF --disable-learn-passwords (default)
                   md5 passwords = ON  --enable-md5-passwords (default)
                    file locking = ON  --enable-file-locking (default)
              vdelivermail fsync = OFF --disable-file-sync (default)
                   make seekable = ON  --enable-make-seekable (default)
                    clear passwd = ON  --enable-clear-passwd (default)
               user dir hashing  = ON  --enable-users-big-dir (default)
              address extensions = OFF --disable-qmail-ext (default)
                        ip alias = OFF --disable-ip-alias-domains (default)
                   domain quotas = OFF --disable-domainquotas (default)
                     auth module = mysql --enable-auth-module=mysql
               mysql replication = OFF --disable-mysql-replication (default)
                   mysql logging = ON  --enable-mysql-logging
                    mysql limits = ON  --enable-mysql-limits
                    MySQL valias = ON  --enable-valias
                        auth inc = -I/usr/include/mysql
                        auth lib = -L/usr/lib/mysql  -lmysqlclient -lz -lm
                system passwords = OFF --disable-passwd (default)
                      pop syslog = log success and errors including passwords
                                   --enable-logging=v
                    auth logging = ON  --enable-auth-logging (default)
    one domain per SQL table     = --disable-many-domains



--------------------------------------------------------------------------------

courier-imap


Courier-IMAP支持IMAP/SIMAP访问

安装:

cd /home/pkg
tar -xjf courier-imap-2.2.2.20040207.tar.bz2
cd courier-imap-2.2.2.20040207

# 作为vpopmail用户进行安装
chown -R vpopmail:vchkpw ../courier-imap-2.2.2.20040207
su vpopmail
./configure --with-redhat
# 注:Redhat用户需要使用"--with-redhat"选项

make
exit
make install-strip
make install-configure

cp courier-imap.sysvinit /etc/rc.d/init.d/courier-imap
chmod 755 /etc/rc.d/init.d/courier-imap
chkconfig --add courier-imap

配置:

# 修改文件/usr/lib/courier-imap/etc/authdaemonrc

authmodulelist="authvchkpw"

# 修改文件/usr/lib/courier-imap/etc/imapd

IMAPDSTART=YES

# 修改文件/usr/lib/courier-imap/etc/imapd-ssl

IMAPDSSLSTART=YES




启动:

/etc/rc.d/init.d/courier-imap start



--------------------------------------------------------------------------------

autorespond

Autorespond是一个自动回复工具,可以很好的与qmailadmin配合使用

安装:

cd /home/pkg
tar -xvzf autorespond-2.0.4.tar.gz
cd autorespond-2.0.4
make
make install

ezmlm

exmlm是一个快速,强大的邮件列表程序,可以通过qmailadmin对其进行配置

1.注意:为了启用maillist的MySQL支持,你必须首先:
建立mysql管理用户:(Ex:user:ezmlm,pass:ezmlm)
# mysql -u root –pxukixu
>use mysql;
>insert into user values('localhost','ezmlm','','y','y','y','y','y','y','y','y','y','y','y','y','y', 'y');
>update user set password=password('ezmlm') where user='ezmlm';
>FLUSH PRIVILEGES;
>exit;
建库:(Ex:database:ezmlm)
# mysqladmin -u root -pxukixu create ezmlm

2.安装:

cd /home/pkg
tar -xvzf ezmlm-0.53.tar.gz
tar -xvzf ezmlm-idx-0.42.tar.gz
cp -rf ezmlm-idx-0.42/* ezmlm-0.53/
cd ezmlm-0.53
patch < idx.patch
chmod u+x makelang
make mysql #MySQL 支持
make clean
make man
make ch_GB #汉字GB2312支持
修改conf-sqlcc文件
内容为:-I/usr/include/mysql

修改conf-sqlld
内容为: -L/usr/lib/mysql -lmysqlclient -lnsl -lm -lz

修改conf-bin
第一行:/var/qmail/bin/ezmlm

修改conf-man
第一行:/var/qmail/man

修改conf-qmail
第一行:/var/qmail

# make setup

3.在你建立一个基于MySQL的maillist之前,你必须保证ezmlm库中已存在一个对应的表:
Ex:你想建一个基于MySQL的maillist:testlist

# /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 -u root -pxukixu ezmlm




--------------------------------------------------------------------------------

qmailadmin
qmailadmin除了不能添加删除虚拟域外,几乎可以完成所有的虚拟域管理
安装:
cd /home/pkg
tar -xvzf qmailadmin-1.2.2.tar.gz
cd qmailadmin-1.2.2

./configure --enable-htmldir=/var/www/html --enable-cgibindir=/var/www/cgi-bin --enable-vpopuser=vpopmail --enable-autoresponder-bin=/usr/bin --enable-ezmlmdir=/var/qmail/bin/ezmlm --enable-maxusersperpage=20 --enable-maxaliasesperpage=20 --enable-modify-quota --enable-domain-autofill

make
make install-strip
cd /usr/local/share/qmailadmin/lang
mv en en.bak
cp zh-cn en

安装选项参考:

            qmailadmin 1.2.2
---------------------------------------
       cgi-bin dir = /var/www/cgi-bin
          html dir = /var/www/html
         image dir = /var/www/html/images/qmailadmin
         image URL = /images/qmailadmin
      template dir = /usr/local/share/qmailadmin
         qmail dir = /var/qmail
      vpopmail dir = /home/vpopmail
   autorespond dir = /usr/bin
         ezmlm dir = /usr/local/bin/ezmlm
         ezmlm idx = yes
   mysql for ezmlm = yes
              help = no
      modify quota = yes
   domain autofill = yes
modify spam check = no


--------------------------------------------------------------------------------

安装并运行igenus
1.到http://www.igenus.org下载最 ... 0040901_release.tgz

#tar zxvf igenus_2.0.2_20040901_release.tgz -C /var/www/
#cd /var/www/
#rm -rf html/
#mv igenus html

2.建temp文件夹

cd /var/www/html/
#mkdir temp

#chmod -R 0755 temp

#chown -R vpopmail:vchkpw temp
#mkdir /home/netdisk

#chmod -R 0755 /home/netdisk

#chown -R vpopmail:vchkpw /home/netdisk
#chmod -R 0755 /var/www/html/

#chown -R vpopmail:vchkpw /var/www/html/
3.修改httpd.conf

#vi /etc/httpd/conf/httpd.conf
Group Apache

User Apache

修改为:
Group vchkpw
User vpopmail

DocumentRoot "/var/www/html/"

AddDefaultCharset ISO-8859-1

修改为

AddDefaultCharset GB2312 //使默认页面为中文

#/etc/rc.d/init.d/httpd restart //重启apache,使修改生效

4.修改config_inc.php文件

# cd /var/www/html/igenus/config

# vi config_inc.php

$CFG_BASEPATH = "/var/www/html/igenus"; \\改成你安装的目录

$CFG_MYSQL_HOST = 'localhost';

$CFG_MYSQL_USER = 'vpopmail';

$CFG_MYSQL_PASS = 'xukixu'; \\改成你的密码

$CFG_MYSQL_DB = 'vpopmail';

$CFG_TEMP = $CFG_BASEPATh."/temp"; \\改成你安装的目录的当前目录下

5.重新编制Mysql数据库表格
删除之前创建的域名
#/home/vpopmail/bin/vdeldomain domain.com

/usr/local/mysql/bin/mysql -uroot --pxukixu
alter table vpopmail.vpopmail drop primary key;
alter table vpopmail.vpopmail add column pw_id int(5) unsigned NOT NULL PRIMARY KEY auto_increment;
alter table vpopmail.vpopmail add KEY pw_name (pw_name,pw_domain);
编辑/var/www/html/docs/iGENUS.sql
# phpMyAdmin SQL Dump# version 2.5.3# http://www.phpmyadmin.net## Host: localhost# Generation Time: Jun 04, 2004 at 11:26 AM# Server version: 3.23.55# PHP Version: 4.3.0# # Database : `vpopmail`# # --------------------------------------------------------## Table structure for table `address`#use vpopmail;               //加入这一行CREATE TABLE `address` (  `id` int(11) unsigned NOT NULL auto_increment,  `pw_id` int(5) 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 PACK_KEYS=1 ;# --------------------------------------------------------并删除创建'lastauth'表部份。

运行
#mysql -u root -pxukixu </var/www/html/docs/iGENUS.sql   导入数据表。

6. 设置igenus 定义允许上传下载的邮件的大小
编辑/etc/php.ini
    max_execution_time=60
    memory_limit=20M
    post_max_filesize=10M
    file_uploads=on
    upload_max_filesize=10M
    register_globals=On
    session.bug_compat_42=0
    session.bug_compat_warn=0
    Sendmail = /var/qmail/bin/qmail-inject
7.编辑/etc/http/conf/httpd.conf

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

    DirectoryIndex index.php index.html

     NameVirtualHost *

     <VirtualHost *>
       ServerName mail.domain.net
       DocumentRoot /var/www/htdocs/igenus
</VirtualHost>
重启apache:
#service httpd restart

8. 修改index.php,signup.php,submit.php,help.php这几个文件中有关域名的地方,将它改成自己的域名.

9.如果需要,用vadddomain和vadduser添加新域名和新用户。

最后打开浏览器,输入http://domain.com/,就可以访问网站了。
10.Qmail限制附件的大小

在/var/qmail/control/databytes 文件中设置附件的大小,可以实现对qmail附件大小的限制,一般安装完成后,这个文件是没有的,你可以自己创建。

smtp方式是以qmail的databytes作限制的

创建databytes并设置邮件最大为4m

# echo 4000000 >/var/qmail/control/databyte

11.限制单域的邮箱数量

vi /home/vpopmail/domains/domain.com/.qmailadmin-limits

maxpopaccounts 200

default_quota 52428800s

chmod 700 /home/vpopmail/domains/domain.com/.qmailadmin-limits

chwod vpopmail:vchkpw /home/vpopmail/domains/domain.com/.qmailadmin-limits
这样就把邮箱总数限制在200个,每个邮箱为50M了

12.用qmail封mailfrom

vi/var/qmail/control/badmailfrom

这个控制文件实现拒收邮件功能的,每一个地址要单独一行。而且,不用重起qmail就能生效。例如:

peng@96633.net -----限制一个特定的用户

@sina.com -----限制整个域中的邮件


--------------------------------------------------------------------------------

测试
测试igenus
http://domain.com/

测试qmailadmin
http://domain.com/cgi-bin/qmailadmin

测试SMTP认证
         # telnet localhost 25

           Trying 127.0.0.1...

Connected to mail.domain.com (127.0.0.1).
Escape character is '^]'.
220 mail. domain.com ESMTP
EHLO hostname
250-mail.domain.com
250-AUTH LOGIN CRAM-MD5 PLAIN
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING
250 8BITMIME
测试POP3
# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
+OK Hello there.
user xy.wang@domain.com
+OK Password required.
pass [password]
+OK logged in.
quit
+OK Bye-bye.
Connection closed by foreign host.

  


--------------------------------------------------------------------------------

邮件系统维护:
查看邮件日志
#cat /var/log/maillog

设置Qmail用户邮箱的容量
# cd /home/vpopmail/bin
#./vsetuserqutoa  domain.com    10500000s   --domain.com这个域,都设成10m的
#./vsetuserqutoa  xuki@domain.com   10500000s  ---只把xuki@domain.com这个用户单独设置为10m。

        批量添加用户

例1:

新建一文件 batchadduser.sh,将以下内容拷入文件中保存 ,运行chmod u+x batchadduser.sh使其可执行。

#!/bin/bash
#batchadduser.sh: batch add mail user.
#install step.
#chmod u+x batchadduser
#./batchadduser.sh domain datafile
if [ $# -lt 2 ]
then
echo "usage: $0 domain datafile"
exit 1
fi
domain=$1
datafile=$2
addcmd=/home/vpopmail/bin/vadduser
while read username passwd
do
$addcmd $username@$domain $passwd
done < $datafile

user文件内容的格式
username1 passwd
username2 passwd2
............


运行batchadduser.sh user即可批量添加用户。

例2:

我把用户名放到一个文本文件中,一个名字一行,密码和它的帐号一致,用户自己再去改密码。

while read line
do
echo $line
./vadduser $line $line
done < user


有选择地清理不需要的Mail Queue


1、处理队列中的邮件:

如想在队列中的邮件马上传递,可以
# kill -HUP qmail-send
要删除队列中的邮件
1) 停止QMAIL
2) mv /var/qmail/queue/lock /var/qmail/;find /var/qmail/queue/ -type f -exec rm {} \; ;mv /var/qmail/lock /var/qmail/queue/
3) 重启QMAIL.
队列中的邮件包含在以下目录中 /var/qmail/queue/{info,mess,remote,local}/hash/#number
2、在邮件队列中快速删除从一个地方发过来但又不存在的邮件 设bad.jite.com是这个域。可以键入以下命令
# echo # > ~alias/.qmail-baddomain-default
# echo bad.jite.com:alias-baddomain>> /var/qmail/control/virtualdomains
# echo bad.jite.com:127.0.0.1 >> /var/qmail/control/smtproutes
然后运行/var/qmail/bin/qmail-tcpok,给qmail-send 一个HUP信号
3、删除队列中的大量广告信息

先停止QMAIL.
1) 停止qmail, qmail-smtpd
2) 在以下默认目录下 /var/qmail/queue/mess
find /var/qmail/queue/mess -type f -exec grep "^Subject:dss" {} \; -print -exec rm {} \;
3) 运行queue-fix清除相关文件,
4) 重启qmail.

使用sh备份qmail+mysql数据到指定的ftp地址的方法
备份vpopmail的domains目录、qmail的control目录和mysql的var数据存放目录,使用crontab定时进行操作。下面是脚本文件,具体的目录视自己的系统更改:
mkdir /var/qmailbakup
cd /var/qmailbakup
touch qmailbakup.sh
chmod 755 qmailbakup .sh

vi qmailbakup.sh
[code:1:d480555598]
#!/bin/sh

DATE=`date +%Y-%m-%d-%H`

cd /var/qmailbakup/

tar cvzf domains.$DATE.tar.gz /home/vpopmail/domains
tar cvzf control.$DATE.tar.gz /var/qmail/control
tar cvzf mysql.$DATE.tar.gz /usr/local/mysql/var

ftp -n 192.168.0.21 << ! //你的ftp服务器的地址
user qmail qmailbakup //ftp用户名和密码,注意要有put权限
binary
put domains.$DATE.tar.gz
put control.$DATE.tar.gz
put mysql.$DATE.tar.gz
bye
!

rm -f domains.$DATE.tar.gz control.$DATE.tar.gz mysql.$DATE.tar.gz //删除本机产生的文件,如果你想在本服务器也保存一份备份,去掉该项即可。
[/code:1:d480555598]

使用crontab定时执行:
vi /etc/crontab
00 20 * * 0-6 /var/qmailbakup/qmailbakup.sh

这样每天晚上8:00执行改备份程序。

给新浪发信的解决办法
qmail
echo "我的邮件服务器的真实域名(A记录)" > /var/qmail/control/helohost

临时限制一个用户的pop3
vmoduser -p email_addr or domain ( for the entire domain )

修改默认的域名
A:
要更改haohao.com为默认域。
方法:
更改~qmail/control/
defaultdomain
me
plusdomains
逐一更改启动pop3和 smtp的启动脚本:
修改:email.3sk.com为haohaoo.com
在最上边添加:export VPOPMAIL_DOMAIN=haohaoo.com

将一个系统的Qmail用户完整地转移到另一个系统
A:
a.cdb配置的?那么请把/home/vpopmail/domains这个文件夹备份好就可以了。用户和密码文件,还有用户信件都在这个目录下。
还应该备份/var/qmail/control下的相关配置文件。

b.如果是以MYSQL数据库方式来存储用户认证信息的
只需要备份
~vpopmail/domain下的所有邮件
/var/qmail/control的配置文件
MYSQL数据库目录下的vpopmail库目录。一般是/var/lib/mysql(RPM)、/usr/local/mysql/data、/usr/local/mysql/var下面。


把一邮件域的名字比如a.com更改为b.com,如何实现
以下几个步骤:
1、cd /home/vpopmail/domains
mv a.com b.com

2、把vpopmail数据库的vpopmail表导出把所有a.com改为b.com,然后删除vpopmail表,再导入.

3、把把vpopmail数据库的dir_control表的a.com改为b.com

4、在/home/qmail/control 目录下把 virtualdomains和rcpthosts下的的a.com改为b.com.

5、在/home/qmail/users目录下把assign文件的a.com改为b.com

6、需要运行qmail-newu重新生成cdb。assign只是配置文件,cdb才是实际的数据文件。

加快 qmail 投递邮件速度
A: /var/qmail/control下面是qmail的控制文件,这两个文件:
Concurrentcylocal default: 10 最大本地同时传送数
Concurrencyremote default: 20 最大远程同时传送数

更改域的默认管理账号
A: vmoduser有个-a参数,可以赋予用户管理权限。

如果想全面禁用postmaster的特殊权限话,就只能改源代码了。

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 虚拟域名


Qmail限制附件大小
我的配置经验==》Qmail限制附件大小:
1.在/var/qmail/control/databytes 中设置附件大小,这个文件要手动建立,直接输入数字就行,默认单位为bytes,如10485760为10M;
2.Webmail中发送附件默认只支持500K左右,如想支持5M附件,修改如下文件
# vi /etc/php.ini

post_max_filesize=5M //320行
upload_max_filesize=5M //405行
session.bug_compat_42=0 //加入到641行
session.bug_compat_warn=0

# vi /etc/httpd/conf.d/php.conf
LimitRequestBody 5242880 //修改14行的值为5M

WebMail上传附件大小限制 (解决上传文件不能大于512KB的问题)
更改/etc/httpd/conf.d/php.conf:

LimitRequestBody 524288中的524288正好跟512KB相等,将其更改为10485760,设置允许最大上传的附件为10MB。
 楼主| 发表于 2004-10-26 18:53:43 | 显示全部楼层
哦,不好意思,多发了一份,so sorry!
 楼主| 发表于 2004-10-26 22:16:11 | 显示全部楼层
错误更正:
在安装vpopmail一节中
./configure --enable-auth-module=mysql --enable-incdir=/usr/local/mysql/include --enable-libdir=/usr/local/mysql/lib --enable-mysql-logging --enable-mysql-limits --enable-valias --enable-logging=y

应该改为:
./configure --enable-auth-module=mysql --enable-incdir=/usr/include/mysql --enable-libdir=/usr/lib/mysql --enable-mysql-logging --enable-mysql-limits --enable-valias --enable-logging=y
 楼主| 发表于 2004-10-28 18:34:08 | 显示全部楼层
明天将会发布2.1版,新增功能包括:
1.垃圾邮件过滤
2.邮件杀毒
3.log分析
4.MRTG
5.通过web完成所有操作,包括添加域

需要的朋友顶啊!!!
 楼主| 发表于 2004-10-28 18:36:33 | 显示全部楼层
明天将会发布2.1版,新增功能包括:
1.垃圾邮件过滤
2.邮件杀毒
3.log分析
4.MRTG
5.通过web完成所有操作,包括添加域

需要的朋友顶啊!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表