首先进行安装ucspi-tcp-0.88
AS3的glibc的版本问题,打完补丁才能正常编译
root: ~ $ tar zxvf ucspi-tcp-0.88.tar.gz
root: ~ $ cd ucspi-tcp-0.88
root: ~ $ patch -p1 < ucspi-tcp-0.88.a_record.patch \\ 补丁所在路径
root: ~ $ patch -p1 < ucspi-tcp-0.88.errno.patch \\ 补丁所在路径
root: ~ $ patch -p1 < ucspi-tcp-0.88.nobase.patch \\ 补丁所在路径
root: ~ $ make
root: ~ $ make setup check
##################
安装qmail-1.03
root: ~ $ mkdir /var/qmail
root: ~ $ mkdir /var/qmail/alias
建立组及用户
root: ~ $ groupadd nofiles
root: ~ $ groupadd qmail
root: ~ $ useradd alias -g nofiles -d /var/qmail/alias -s /nonexistent
root: ~ $ useradd qmaild -g nofiles -d /var/qmail -s /nonexistent
root: ~ $ useradd qmaill -g nofiles -d /var/qmail -s /nonexistent
root: ~ $ useradd qmailp -g nofiles -d /var/qmail -s /nonexistent
root: ~ $ useradd qmailq -g qmail -d /var/qmail -s /nonexistent
root: ~ $ useradd qmailr -g qmail -d /var/qmail -s /nonexistent
root: ~ $ useradd qmails -g qmail -d /var/qmail -s /nonexistent
打补丁及编绎安装qmail
root: ~ $ tar zxvf qmail-1.03.tar.gz
root: ~ $ tar zxvf qmail-smtpd-auth-0.31.tar.gz
root: ~ $ cp qmail-smtpd-auth-0.31/base64.* qmail-1.03 \\ 打smtp-auth补丁,支持smtp认证
root: ~ $ patch -d qmail-1.03 < qmail-smtpd-auth-0.31/auth.patch \\ 补丁路径
root: ~ $ cd qmail-1.03
root: ~ $ patch -p1 < qmail-103.patch \\ 补丁路径
root: ~ $ patch -p1 < qmailqueue-patch \\ 补丁路径
root: ~ $ patch -p1 < qmail-maildir++.patch \\ 补丁路径
root: ~ $ patch -p1 < qmail-1.03.errno.patch \\ 补丁路径
root: ~ $ patch -p1 < qmail-1.03.qmail_local.patch \\ 补丁路径
root: ~ $ vi qmail-smtpd.c \\ 搜索函数straynewline中的451改为553
// 当你的服务器收到无效格式的邮件时,会发送:"I am not going to accept that message at the moment,you can try again later",对方服务器收到后,几秒钟后又会发送同样的邮件给你,造成多次的重复。
// 改为553后,你的服务器将直接发送:"I am not going to accept that message,don't try sending it again.",告诉对方的服务器不要再发这封无效的信件。
root: ~ $ make setup check
root: ~ $ ./config-fast mail.snoopy.gov \\ 这里改为你的域名
添加别名用户
root: ~ $ touch /var/qmail/alias/.qmail-root
root: ~ $ touch /var/qmail/alias/.qmail-postmaster
root: ~ $ touch /var/qmail/alias/.qmail-mailer-daemon
root: ~ $ chmod 644 /var/qmail/alias/.qmail*
root: ~ $ echo postmaster /var/qmail/control/bouncefrom \\ 退回邮件
root: ~ $ echo mail.snoopy.gov /var/qmail/control/helohost \\ 主机名(解决新浪拒收邮件问题)
root: ~ $ echo 10485760 /var/qmail/control/databytes \\ 接收邮件的最大容量 (0=无限制)??
root: ~ $ echo 40 /var/qmail/control/concurrencylocal \\ 本地同时投递邮件的数目
root: ~ $ echo 40 /var/qmail/control/concurrencyremote \\ 同时投递至远程主机的数目
/var/qmail/control/locals \\ 确保文件中有缺省域名,否则投递失败的邮件将不知所踪
如果存在postfix和sendmail,或其他邮件服务,停用现在的mail服务,或则删除它!
root: ~ $ /etc/rc.d/init.d/sendmail stop
root: ~ $ cp /var/qmail/bin/sendmail /usr/sbin/qmail.sendmail
root: ~ $ rm -f /etc/alternatives/mta
root: ~ $ ln -s /usr/sbin/qmail.sendmail /etc/alternatives/mta
root: ~ $ ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
root: ~ $ ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
root: ~ $ chmod 777 /usr/sbin/sendmail \\ 这里特别要注意检查/usr/sbin/sendmail的属性.不然会导致装完后用igenus在web界面发信不成功
###################
安装vpopmail
root: ~ $ mkdir /home/vpopmail
root: ~ $ mkdir /home/vpopmail/etc
添加用户和组
root: ~ $ groupadd vchkpw
root: ~ $ useradd -g vchkpw vpopmail
添加mysql的vpopmail用户,用于操作vpopmail数据库
AS3默认安装后,mysql缺少mysql-server-3.23.58-4.i386.rpm,装上去!然后测试是否可以正常使用
root: ~ $ cp /usr/lib/mysql/* /usr/lib/
root: ~ $ cp /usr/include/mysql/* /usr/include/
root: ~ $ service mysqld start
root: ~ $ mysql -p
mysqlcreate database vpopmail; \\ 进入mysql命令行
mysqlgrant all on vpopmail.* to vpopmail@localhost identified by "snoopyxp";
编译安装vpopmail
root: ~ $ tar zxvf vpopmail-5.2.1.tar.gz
root: ~ $ cd vpopmail-5.2.1
root: ~ $ vi vmysql.h
#define MYSQL_UPDATE_SERVER "localhost" \\ mysql服务器名
#define MYSQL_UPDATE_USER "vpopmail" \\ 用户名
#define MYSQL_UPDATE_PASSWD "snoopyx" \\ 改成你设置的密码
#define MYSQL_READ_SERVER "localhost" \\ mysql服务器名
#define MYSQL_READ_USER "vpopmail" \\ 用户名
#define MYSQL_READ_PASSWD "snoopyx" \\ 改成你设置的密码
创建tcp.smtp文件(或者使用/etc/tcp.smtp)
root: ~ $ vi /home/vpopmail/etc/tcp.smtp
127.0.0.1:allow,RELAYCLIENT=""
:allow
root: ~ $ cd /home/vpopmail/etc
root: ~ $ tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
进行编译
root: ~ $ ./configure --prefix=/home/vpopmail \\ 指定安装路径
--enable-mysql=y \\ 是否应用Mysql数据库
--enable-incdir=/usr/include/mysql \\ Mysql数据库include文件所在目录
--enable-libdir=/usr/lib/mysql \\ Mysql数据库lib文件所在目录
--enable-default-domain=snoopy.gov \\ 定义虚拟域名
--enable-passwd=n \\ 是否使用系统密码验证方式
--enable-defaultquota=10485760 \\ 定义缺省邮箱大小,10485760为10MB,20971520为20MB,52428800为50MB
--enable-tcprules-prog=/usr/local/bin/tcprules \\ 指定tcprules目录
--enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp \\ 指定tcprules应用规则文件
--enable-vpopuser=vpopmail \\ vpopmail的用户
--enable-vpopgroup=vchkpw \\ vpopmail的组
--enable-ip-alias-domains=n \\ 在虚拟域中允许通过反向IP地址查找虚拟域名
--enable-sqwebmail-pass=y \\ sqwebmail密码验证支持
--enable-hardquota=10000000 \\ 限制磁盘限额为10M就需要使用下面这个配置参数,若磁盘限额超出,将拒绝接受该用户的新邮件,并返回一封拒绝信息邮件,其中的信息可以定制
root: ~ $ make
root: ~ $ make install-strip
创建虚拟域
root: ~ $ cd /home/vpopmail/bin
root: ~ $ ./vadddomain 域名 (密码)
\\ 在mysql数据库vpopmail中自动生成vpopmail表单,生成的密码是postmaster@域名帐户的密码,以后登陆qmailadmin就是使用postmaster登陆的
root: ~ $ ./vadduser 用户名 密码
\\ 会自动往表vpopmail中添加用户数据,用户添加到默认的域里面。如果要添加到其他的虚拟域,用户名要带域名,如pink@snoopy.gov)
如果不成功的话,则必须先删除创建的域,./vdeldomain 域名 不要使用手工操作mysql删除域和用户帐号(除非你特别熟悉),否则会引起系统帐户的紊乱
########################
smtp-auth的设置
root: ~ $ chmod 4755 vchkpw
root: ~ $ chown root.root vchkpw
\\ 如果使用带验证的smtp,smtp进程要调用密码验证程序,则必须要使用 setuid 和setgid。提高vchkpw的权限,才能完成setgid操作。
接下来安装cmd5checkpw
root: ~ $ tar zxvf cmd5checkpw-0.22.tar.gz
root: ~ $ cd cmd5checkpw-0.22
root: ~ $ make
root: ~ $ mkdir /usr/man
root: ~ $ mkdir /usr/man/man8
root: ~ $ make install
注意,因为使用vpopmail,所以checkpassword可以不用安装!
生成qmail的启动脚本
root: ~ $ cp /var/qmail/boot/home /var/qmail/rc
root: ~ $ vi /var/qmail/rc \\ 对rc文件进行修改,以决