SOLARIS+QMAIL+VPOPMAIL+IGENUS+QMAILAMDIN

12/3/2006来源:Qmail人气:7092

作者: LLZQQ
MAIL:
[email protected]
FROM:WWW.CHINAUNIX.NET

一、准备工作:

安装gcc、make、autoconf、automake等编译工具,建立网络连接,配置域名。

二、安装patch工具:

# gzip –d patch-2.5.4-sol8-intel-local.gz
# pkgadd –d patch-2.5.4-sol8-intel-local
# mv /usr/bin/patch /usr/bin/patch.bak
# cp /usr/local/bin/patch /usr/bin/patch

三、安装ucspi-tcp-0.88

# gzip -d ucspi-tcp-0.88.tar.gz
# tar xvf ucspi-tcp-0.88.tar
# 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.建目录:
# mkdir /var/qmail
# mkdir /var/qmail/alias
2.建组及用户:
# groupadd nofiles
# groupadd qmail
# useradd -g nofiles -m -d /var/qmail/alias -s /bin/false alias
# useradd -g nofiles -m -d /var/qmail -s /bin/false qmaild
# useradd -g nofiles -m -d /var/qmail -s /bin/false qmaill
# useradd -g nofiles -m -d /var/qmail -s /bin/false qmailp
# useradd -g qmail -m -d /var/qmail -s /bin/false qmailq
# useradd -g qmail -m -d /var/qmail -s /bin/false qmailr
# useradd -g qmail -m -d /var/qmail -s /bin/false qmails

3.打补丁及编绎安装qmail

# gzip -d qmail-1.03.tar.gz
# tar xvf qmail-1.03.tar
# gzip -d qmail-smtpd-auth-0.31.tar.gz
# tar xvf qmail-smtpd-auth-0.31.tar
# cp qmail-smtpd-auth-0.31/base64.* qmail-1.03
# 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-1.03.qmail_local.patch
# patch -p1 < ../qmail-maildir++.patch
# patch -p1 < ../qmail-1.03.errno.patch

修改qmail-smtpd.c将函数straynewline中的451改为553.(在53行)
查找“http://”两次,改其中的url如下(这样可以使QMAIL更安全些):

void straynewline() { out("451 See
http://nero.3322.org.\r\n");
out("214 llzqq home page:
http://nero.3322.org\r\n");

# make setup check
出现错误后,修改auto-ccld.sh文件中CC,LD成你所用的环境就可以了。
# ./config-fast nero.3322.org

4.添加别名用户:
# touch /var/qmail/alias/.qmail-root
# touch /var/qmail/alias/.qmail-postmaster
# touch /var/qmail/alias/.qmail-mailer-daemon

5.如果存在postfix和sendmail,停用现在的mail服务
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
# chmod 777 /usr/sbin/sendmail

五、安装vpopmail

1.建立目录:
# mkdir /export/home/vpopmail
# mkdir /export/home/vpopmail/etc

2.添加用户和组:
# groupadd vchkpw
# useradd -g vchkpw -s /bin/false -m -d /export/home/vpopmail vpopmail

3.添加MySQL的vpopmail用户,用于操作vpopmail数据库

# mysql -u root –p******
mysql>create database vpopmail;
mysql>grant all on vpopmail.* to [email protected] identified by "passWord";

4.编译安装vpopmail

# gzip -d vpopmail-5.2.1.tar.gz
# tar xvf vpopmail-5.2.1.tar
# 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 "*****" (改成你设置的密码)

#define MYSQL_READ_SERVER "localhost" (mysql服务器名)
#define MYSQL_READ_USER "vpopmail" (用户名)
#define MYSQL_READ_PASSWD "*****" (改成你设置的密码)

在54行和58行后加 \
#define TABLE_LAYOUT "pw_name char(32) not null, \
pw_domain char(64) not null, <===== 54
pw_passwd char(40), \
pw_uid int, pw_gid int, \
pw_gecos char(4icon_cool.gif, \
pw_dir char(160), <===== 58
pw_shell char(20), \
PRimary key (pw_name, pw_domain ) "
========================= vmysql.h========================

5.创建tcp.smtp文件(或者使用/etc/tcp.smtp)

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

127.0.0.1:allow,RELAYCLIENT=""
:allow

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

6.进行编译:
./configure
--prefix=/export/home/vpopmail
--enable-mysql=y
--enable-incdir=/opt/sfw/mysql/include/mysql --enable-libdir=/opt/sfw/mysql/lib/mysql --enable-default-domain=nero.3322.org
--enable-passwd=n
--enable-defaultquota=52428800s --enable-tcprules-prog=/usr/local/bin/tcprules --enable-tcpserver-file=/export/home/vpopmail/etc/tcp.smtp --enable-vpopuser=vpopmail
--enable-vpopgroup=vchkpw
--enable-ip-alias-domains=n

需要改下面两个文件中的“cc -s”为“gcc -s”
./cdb/conf-cc
./cdb/conf-ld

# make
# make install-strip

7.创建虚拟域

# cd /export/home/vpopmail/bin
# ./vadddomain nero.3322.org

如果不成功的话,则必须先删除创建的域(vdeldomain 域名),
# ./vadduser
[email protected]
# ./vadduser
[email protected]
如果添加domain时,提示Domain already exists,但却删除domain又提示Domain does not exist.则采用下面的处理方法.
删除/var/qmail/control目录下rcpthosts,virtualdomains文件中有关domain的信息;同时删除/var/qmail/user目录下assign文件中有关domain的信息;然后运行/var/qmail/bin/qmail-newu.这时候就可以正常添加domain了.

六、smtp-auth的设置

1.修改vchkpw的属性
# cd /export/home/vpopmail/bin
# chmod 4755 vchkpw
# chown root:sys vchkpw

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

2.安装cmd5checkpw
# gzip -d cmd5checkpw-0.22.tar.gz
# tar xvf cmd5checkpw-0.22.tar
# cd cmd5checkpw-0.22
# make
# mkdir /usr/man/man8
# make install

七、生成qmail的启动脚本

# cp /var/qmail/boot/home /var/qmail/rc
对rc文件进行修改,以决定投送方式:
# vi /var/qmail/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 %26amp;
=====================================rc=====================================
编辑smtp服务的启动脚本
# vi /var/qmail/smtp
====================================smtp====================================
#!/bin/sh
QMAILDUID=qmaild
NOFILESGID=nofiles
/usr/local/bin/tcpserver -H -R -l 0 -t 1 -v -p -x /export/home/vpopmail/etc/tcp.smtp.cdb -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd nero.3322.org /export/home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2>%26amp;1 | /var/qmail/bin/splogger smtpd 3 %26amp;
====================================smtp====================================
编辑pop3服务的启动脚本
# vi /var/qmail/pop3
====================================pop3====================================
#!/bin/sh
/usr/local/bin/tcpserver -H -R 0 pop3 /var/qmail/bin/qmail-popup nero.3322.org
/export/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir %26amp;
====================================pop3====================================

# 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

查看qmail的服务进程是否已完全正常启动
# ps -ef | grep qmail

九、建立开机启动脚本:

# vi /etc/init.d/qmail
==================================qmail==============================
#! /bin/sh
# chkconfig: 2545 90 90
# description: qmail (include smtp and pop3) auto start/stop scripts.

case "$1" in
start)
echo -n "start qmail:"
/var/qmail/rc %26amp;
echo "."
echo -n "start smtp service:"
/var/qmail/smtp
echo "."
echo -n "start pop3 service:"
/var/qmail/pop3
echo "."
;;
stop)
echo "stop qmail:"
pkill qmail-send
pkill qmail-clean
pkill qmail-rspawn
pkill qmail-lspawn
pkill splogger
pkill tcpserver
;;
*)

exit 1
;;
esac
exit 0
==================================qmail==============================

# chmod 744 /etc/init.d/qmail
# chown root:sys /etc/init.d/qmail
# ln -s /etc/init.d/qmail /etc/rc3.d/S82qmail
# ln -s /etc/init.d/qmail /etc/rc2.d/K82qmail

十、安装IGENUS

# gzip -d igenus_2_20030516_snap.tgz
# tar vxf igenus_2_20030516_snap.tar
# mv igenus /var/www/html/
# cd /var/www/html/igenus
# mkdir temp
# chmod -R 0755 temp
# chown -R vpopmail:vchkpw temp

其他关于IGENUS的详细设置略。

十一、建立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;

十一、安装autorespond

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

十二、安装QMAILADMIN

# gzip –d qmailadmin-1.0.6.tar.gz
# tar xvf qmailadmin-1.0.6.tar
# cd qmailadmin-1.0.6
# ./configure
--enable-cgibindir=/var/www/cgi-bin
--enable-htmldir=/var/www/html
--disable-ezmlmdir

# make
# make install-strip

再一次执行
# chown -R vpopmail:vchkpw /var/www/html/igenus/temp

汉化qmailadmin首先删除qmailadmin安装的菜单文件

# rm -f /usr/local/share/qmailadmin/html/en
# rm -f /usr/local/share/qmailadmin/html/en-us

生成自己的简体中文菜单文件/usr/local/share/qmailadmin/html/en

# vi /usr/local/share/qmailadmin/html/en

=================================== en ===================================
000 gb2312
001 主菜单
002 邮件帐号
003 添加邮件机器人:
004 邮件机器人的名字:
005 发送拷贝到邮件地址:
006 标题:
007 添加转发帐号:
008 转发到邮件地址:
009 本地邮件用户名:
010 要转发的邮件地址的格式是:[email protected]
本地邮件用户的格式是: popaccount
例如,
如果转发 本地用户: sales到邮件地址:
[email protected]
那么所有发到sales用户的邮件都将转发到
[email protected]个邮件地址中
011 Add List Moderator
012 Add Moderator to mailing list
013 邮件地址:
014 添加新的用户到邮件类别
015 创建新的邮件列表
016 邮件列表的名字
017 邮件列表所有者的邮件地址:
018 Archived
019 Not archived
020 Block archive. Only moderators are allowed to access the archive.
021 Archive access is open to anyone or subscribers only, depending on the Guard setting.
022 No digest. Do not set up the digest list.
023 Prefix. Set up the list so that the outgoing subject will be prefixed with the list name.
024 No prefix.
025 Guard archive. Archive access requests from unrecognised SENDERs will be rejected.
026 Do not guard archive. Archive access request from any SENDERs will be serviced.
027 Subscriptions do not require confirmation.
028 Subscription requires confirmation by reply to a message sent to the subscription address.
029 Indexed for WWW archive access.
030 The list is created without WWW archive index
031 Unsubscribe does not require confirmation.
032 Unsubscribe requires confirmation by a reply to a message sent to the subscription address.
033 List subscribers. Remote administrators can request a subscriber list, and search the subscriber log.
034 The subscriber list cannot be obtained.
035 Message moderation.
036 Message posting is not moderated.
037 Posts from addresses other than moderators are rejected. This is applicable to message moderated lists only.
038 Others not rejected. For moderated lists, all posts are forwarded to the moderators. The switch has effects only on message moderated lists.
039 Respond to adminstrative requests and allow archive retrieval.
040 Allow only digest creation, remote adminstration, and archive retrieval by remote administrators, (if the list is configured with this options).
041 Allow remote administrators to edit files in text directory
042 Text file editing is not allowed
043 ReQuest address is serviced
044 Do not process messages sent to the request address
045 Enables remote administration
046 No remote administration.
047 Subscription moderation.
048 Subscriptions are not moderated.
049 Trailer
050 No trailer
051 User posts only
052 Do not restrict posts based on SENDER address
053 允许数据库支持
054 主机名
055 端口
056 用户名
057 密码
058 数据库
059 表
060 添加
061 邮件帐号
062 CatchAll:
063 说明
064 修改
用户
065 删除
帐号
066 CatchAll
帐号
067 创建新的邮件帐号
068 帐号别名
069 别名
070 邮件帐号
071 修改
072 删除
073 创建新的别名
074 Forward Accounts
075 转发
076 创建新的转发
077 邮件机器人
078 邮件机器人
079 新的邮件机器人
080 邮件列表
081 列表
082 打开.qmail-default时出错
083 添加
订阅人
084 删除
订阅人
085 列出
订阅人
086 添加
Moderator
087 删除
Moderator
088 列出
Moderators
089 新的邮件列表
090 创建邮件帐号
091 密码 (again):
092 真实姓名
093 列表名
094 提交用户
095 提交新用户到下列邮件列表
096 删除别名
097 确认删除
098 删除邮件机器人
099 数据库设置
100 删除转发
101 删除邮件列表
102 删除用户
103 转发邮件
104 是的, 将它转发到:
105 修改邮件机器人
106 名字
107 说明
108 创建新的邮件地址
109 修改用户
110 新的密码
111 修改用户
112 管理员帐号
113 域名
114 登录
115 Redirects for user
116 Current redirects
117 Add/Replace redirect email
118 Delete rediect
119 添加成功
120 无法添加
121 别名
122 转发
123 Show redirect
124 快捷链接
125 创建新的邮件帐号
126 创建新的别名
127 创建新的转发
128 创建新的邮件机器人
129 创建新的邮件列表
130 CatchAll: Bounced
131 没有用户可供浏览,请返回到上一页
132 默认
133 索引:
134 Set no default catch all account
135 上一页
136 刷新
137 下一页
138 Type in password
139 邮件用户的密码更改成功。
140 密码修改失败。
141 用删除成功。
142 没有认证
143 目录权限错误
144 文件权限错误
145 无效用户内部错误
146 Cannot Do redirect
147 Redirect Now
148 无效邮件地址
149 Cannot Delete Last Entry
150 文件错误
151 Line Deleted Succesfully
152 转发添加成功
153 用户名不存在
154 别名添加成功
155 Invalid Action
156 达到最大的别名数目限制
157 达到最大的转发数目限制
158 达到最大邮件机器人数目限制
159 Invalid DotQmail Type: adddotqmail()
160 别名无效
161 Did not add alias. POP Account must be an existing POP Account.
162 邮件用户名无效
163 本地用户名无效
164 Invalid Alias Type : adddotqmailnow()
165 添加邮件用户的别名失败
166 添加邮件用户的别名成功
167 删除用户的别名/转发出错。
168 添加用户的别名/转发成功。
169 Error deleting redirect/forward for POP Account
170 Redirect/forward for POP Account deleted successfully
171 Error: could not change to directory
172 Only one person can log in as system postmaster at one time. Someone else has logged in. Please only have one login at a time.
173 登录过期,请重新登录
174 无效的邮件机器人名
175 用户名已存在
176 Please fill in Mail Robot name
177 Invalid Owner Email Address
178 请输入标题
179 Please type in something to send
180 邮件机器人添加成功
181 无法删除邮件机器人
182 邮件机器人删除成功
183 邮件机器人修改成功
184 达到最大的邮件列表数
185 无法删除邮件列表数
186 邮件列表删除成功
187 邮件列表添加成功
188 无效的邮件列表名
189 邮件列表中邮件地址一览
190 End of list
191 邮件列表中moderator用户的邮件地址一览
192 返回主菜单
193 添加到主菜单
194 Email address added as a moderator to mailing list
195 从邮件列表中删除订阅人
196 从邮件列表中删除moderator
197 removed as a moderator for mailing list
198 登录无效
199 达到最大的邮件用户数目
200 密码不匹配,请重新输入
201 内存耗尽
202 Where the parameters are:
203 从邮件列表中移除
204 Go user
205 禁止 转发/假期(Vacation)
206 Set remote catch all account
207 Set Remote CatchAll
208 Remote CatchAll Address:
209 允许转发
210 允许保存拷贝和转发
211 转发邮件到:
212 允许假期(Vacaction)
213 Vacation 标题:
214 Vacation 信息:
215 必须提供转发地址
216 必须提供标题
217 刷新主菜单
218 退出
219 Moderators列表
220 Moderator
地址
221 订阅人列表
222 提交
地址
223 用户不存在
224 (点击修改)
225 修改邮件列表
226 邮件列表修改成功
227 诊断
228 总数:
229 不限制
230 订阅人总数:
231 没有列表可供显示
232 没有别名和转发可供显示
233 没有邮件机器人可供显示
=================================== en ===================================

# cd /usr/local/share/qmailadmin/html
# cp en en-us

生成admin表

# mysql -u root –p******
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 ;

访问QMAILADMIN页面:

http://nero.3322.org/cgi-bin/qmailadmin