qmail部署的问题请帮帮我吧

由 monoliths 在 08-12-2004 11:19 发表:

qmail部署的问题请帮帮我吧

我根据以下文章部署qmail,可是smtp就是启动不了,请论坛高人帮我解决一下吧

在REDHAT9.0下安装qmail+igenus+qmailadmin

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

www.iselong.com 作者:artxing

摘要:经过这些天在chinaunix的学习,参照peng 和bluelotus写的qmail安装贴子,再加上gadfly以及论坛里大家的支持,终于自己也配置了一套邮件系统.再经过今天的又一次安装确认无误后,把自己的安装过程写成一篇贴子,希望能对后来者有所帮助.谢谢peng,谢谢bluelotus,谢谢gadfly,谢谢论坛里的每一个帮助过我的人.

我把下文中所提到的软件打成了一个包,下载地址为: http://class.868cn.com/download/qmail.rar

在REDHAT9.0下安装igenus

Redhat9.0+Qmail+smtp-auth+Vpopmail+MySQL+Igenus+ezmlm+autorespond+qmailadmin

一、安装环境及准备工作

安装Redhat9.0,设置主机名为mail.wangxu.com,安装时选取安装apache、php、mysql,可省去以后自已编译安装的麻烦,mysql要注意选取mysql-devel开发包,或者在装完系统后再单独把它装上.

启动mysql server:

/etc/rc.d/init.d/mysqld start

设置mysql root口令:

mysqladmin -u root -p password wangxu(设置你的密码)

Enter passwod 直接回车)

mysql的头文件和库文件分别在/usr/include/mysql和/usr/lib/mysql。

安装完Redhat9.0后,修改/etc/httpd/conf/httpd.conf,使web服务正常启用,为mysql添加root用户的密码。如果设置了防火墙,要打开服务器的smtp 25和pop3 110两个端口。

二、安装ucspi-tcp-0.88

1.下载相应软件及补丁,由于redhat9.0的glibc的版本问题,必须打补丁才能正常编译。

2.安装ucspi-tcp-0.88

#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

1.下载软件及补丁:

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 qmail-1.03.tar.gz

#tar zxvf qmail-smtpd-auth-0.31.tar.gz

#cp qmail-smtpd-auth-0.31/base64.* qmail-1.03 //安装smtp-auth补丁,支持smtp认证

#patch -d qmail-1.03 < qmail-smtpd-auth-0.31/auth.patch

#cd qmail-1.03

#patch -p1 < ../qmail-103.patch

#patch -p1 < ../qmailqueue-patch

#patch -p1 < ../qmail-maildir++.patch

#patch -p1 < ../qmail-1.03.errno.patch

#patch -p1 < ../qmail-1.03.qmail_local.patch

#vi qmail-smtpd.c //将函数straynewline中的451改为553

//将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.",告诉对方的服务器不要再发这封无效的信件。

make setup check

./config-fast mail.wangxu.com

5.添加别名用户:

touch /var/qmail/alias/.qmail-root

touch /var/qmail/alias/.qmail-postmaster

touch /var/qmail/alias/.qmail-mailer-daemon

6.如果存在postfix和sendmail,停用现在的mail服务

#/etc/rc.d/init.d/sendmail stop

#cp /var/qmail/bin/sendmail /usr/sbin/qmail.sendmail

#rm -f /etc/alternatives/mta

#ln -s /usr/sbin/qmail.sendmail /etc/alternatives/mta

ln -s /var/qmail/bin/sendmail /usr/lib/sendmail

ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

#chmod 777 /usr/sbin/sendmail

//这里特别要注意检查/usr/sbin/sendmail的属性.不然会导致装完后用igenus在web界面发信不成功,我就在这里困了好几天.如果用igenus在web界面发信不成功,就手工用/usr/sbin/sendmail发信看看有没有问题.

四、安装vpopmail

1.下载vpopmail的稳定版

2.建立目录:

#mkdir /home/vpopmail

#mkdir /home/vpopmail/etc

3.添加用户和组:

#groupadd vchkpw

#useradd -g vchkpw vpopmail

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

#mysql -u root -pwangxu //进入mysql命令行

mysql>create database vpopmail;

mysql>grant all on vpopmail.* to vpopmail@localhost identified by "密码";

5.编译安装vpopmail

#tar zxvf vpopmail-5.2.1.tar.gz

#cd vpopmail-5.2.1

#vi vmysql.h

/* =========================== vmysql.h ============================== */

#define MYSQL_UPDATE_SERVER "localhost" (mysql服务器名)

#define MYSQL_UPDATE_USER "vpopmail" (用户名)

#define MYSQL_UPDATE_PASSWD "wangxu" (改成你设置的密码)

#define MYSQL_READ_SERVER "localhost" (mysql服务器名)

#define MYSQL_READ_USER "vpopmail" (用户名)

#define MYSQL_READ_PASSWD "wangxu" (改成你设置的密码)

/==================================================================/

6.创建tcp.smtp文件(或者使用/etc/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 < tcp.smtp

7.进行编译:

./configure --prefix=/home/vpopmail --enable-mysql=y --enable-incdir=/usr/include/mysql --enable-libdir=/usr/lib/mysql --enable-default-domain=wangxu.com --enable-passwd=n --enable-defaultquota=5242880 --enable-tcprules-prog=/usr/local/bin/tcprules --enable-vpopuser=vpopmail --enable-vpopgroup=vchkpw --enable-ip-alias-domains=n

\\下面是我使用的参数

--prefix=/home/vpopmail \\指定安装路径

--enable-mysql=y \\是否应用Mysql数据库

--enable-incdir=/usr/include/mysql \\Mysql数据库include文件所在目录

--enable-libdir=/usr/lib/mysql \\Mysql数据库lib文件所在目录

--enable-default-domain=mydomain.com \\定义虚拟域名

--enable-passwd=n \\是否使用系统密码验证方式

--enable-defaultquota=5242880 \\定义缺省邮箱大小,10485760为10MB,20971520为20MB,52428800s为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地址查找虚拟域名

make

make install-strip

8.创建虚拟域

cd /home/vpopmail/bin

./vadddomain 域名 (密码) (在mysql数据库vpopmail中自动生成vpopmail表单)

(如果使用与机器名相同的虚拟域名,应先生成一个其它的虚拟域名,不然会有问题,无法自动生成vpopmail数据库)

./vadduser 用户名 密码 (会自动往表vpopmail中添加用户数据,用户名要带域名,如[email protected])

如果不成功的话,则必须先删除创建的域,./vdeldomain 域名

五、smtp-auth的设置

1.修改vchkpw的属性

#chmod 4755 vchkpw

#chown root.root vchkpw

如果使用带验证的smtp,smtp进程要调用密码验证程序,则必须要使用 setuid 和setgid。提高vchkpw的权限,才能完成setgid操作。

2.下载安装cmd5checkpw

#tar zxvf cmd5checkpw-0.22.tar.

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus