rhas3.0 + qmail + mysql + smtp + vpopmail + igenus + qmailadmin
一、安装说明。
为了方便安装我在安装Redhat3.0时选了apache、php、mysql,注意mysql-devel开发包一定要装上,
二、安装ucspi-tcp-0.88
1.这是由于redhat3.0(包括redhat 9.0)的glibc的版本有问题,必须有下列软件及补丁才能编译
http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
http://qmail.te8.com/rpms/glibc-2.3....a_record.patch
http://qmail.te8.com/rpms/glibc-2.3....88.errno.patch
http://qmail.te8.com/rpms/glibc-2.3...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.需要的软件及补丁
http://cr.yp.to/software/qmail-1.03.tar.gz
http://www.ckdhr.com/ckd/qmail-103.patch
http://www.qmail.org/qmailqueue-patch
http://www.shupp.org/patches/qmail-maildir++.patch
http://qmail.te8.com/rpms/glibc-2.3....03.errno.patch
http://qmail.te8.com/rpms/glibc-2.3...ail_local.patch
http://members.elysium.pl/brush/qma...uth-0.31.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 qmail-1.03.tar.gz
#tar zxvf qmail-smtpd-auth-0.31.tar.gz
#cp qmail-smtpd-auth-0.31/base64.* qmail-1.03
#patch -d qmail-1.03
#cd qmail-1.03
#patch -p1
#patch -p1
#patch -p1
#patch -p1
#patch -p1
#vi qmail-smtpd.c 将函数straynewline中的451改为553
#make setup check
#./config-fast domain.com
5.添加别名用户
# touch /var/qmail/alias/.qmail-root
# touch /var/qmail/alias/.qmail-postmaster
# touch /var/qmail/alias/.qmail-mailer-daemon
6.如果存在postfix和sendmail,将它们停用。
#/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
#rm -f /usr/lib/sendmail
#rm -f /usr/sbin/sendmail
#ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
#ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
#chmod 777 /usr/sbin/sendmail
四、安装vpopmail
1.下载vpopmail
http://www.inter7.com/vpopmail/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
mysqlcreate database vpopmail;
mysqlgrant 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"
#define MYSQL_UPDATE_USER "vpopmail"
#define MYSQL_UPDATE_PASSWD "****" (改成你设置的密码)
#define MYSQL_READ_SERVER "localhost"
#define MYSQL_READ_USER "vpopmail"
#define MYSQL_READ_PASSWD "****" (改成你设置的密码)
==========================================================
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=domain.com
--enable-passwd=n
--enable-defaultquota=52428800s (10485760:10MB,20971520:20MB,52428800s: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
# /home/vpopmail/bin/vadddomain 域名 密码
# /home/vpopmail/bin/vadduser 用户名 密码 (用户名要带域名,如demo@demo.com)
删除创建域的命令是:./vdeldomain 域名
五、设置smtp-auth
1.修改vchkpw的属性
#chmod 4755 vchkpw
#chown root.root vchkpw
2.下载安装cmd5checkpw
wget http://members.elysium.pl/brush/cmd...kpw-0.22.tar.gz
#tar zxvf cmd5checkpw-0.22.tar.gz
#cd cmd5checkpw-0.22
#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 %26amp;
================== rc ==========================
#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 domain.com /home/vpopmail/bin/vchkpw /bin/true /bin/cmd5checkpw /bin/true 2%26amp;1 | /var/qmail/bin/splogger smtpd 3 %26amp;
=================== smtp ============================
#vi /var/qmail/pop3 //编辑pop3服务的启动脚本
====================== pop3 =========================
#!/bin/sh
/usr/local/bin/tcpserver -H -R 0 pop3 /var/qmail/bin/qmail-popup domain.com /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
#ps aux | grep "qmail"
查看POP3和SMTP是否工作
# telnet 192.168.0.1 110
# telnet 192.168.0.1 25
注意在outlook中设置邮件帐号时,用户名后要加上域名,如llzqq@domain.com。如果qmail出现问题,可查看mysql中的vpopmail数据库,/var/log下的mysqld和maillog日志记录。
八、安装并运行igenus
1.下载最新的安装包:igenus_2_20030516_snap.tgz
#tar zxvf igenus_2_20030516_snap.tgz -C /var/www/html
2.建temp文件夹
cd /var/www/html/igenus
mkdir temp
chmod -R 0755 temp
chown -R vpopmail:vchkpw temp
在httpd.conf中设置权限不允许访问temp目录。
deny from all
3.修改httpd.conf
#vi /etc/httpd/conf/httpd.conf
User Apache
Group Apache
修改为:
User vpopmail
Group vchkpw
为了解决APACHE的默认语言问题添加这个:
AddDefaultCharset GB2312
#/etc/rc.d/init.d/httpd restart
4.解决个别邮箱拒收邮件的问题(如新浪网)
修改邮件签名信息
#vi /var/www/html/igenus/config/config_inc.php
$CFG_BASEPATH = "/var/www/html/igenus";
$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_USER = 'vpopmail';
$CFG_MYSQL_PASS = '******'; 改成你的密码
$CFG_MYSQL_DB = 'vpopmail';
$CFG_TEMP = $CFG_BASEPATh."/temp";
删除其中的
“iGENUS is a free webmail interface, NO fee, FREE download”
修改其中的http://www.igenus.org为http://domain.com
#vi /var/qmail/control/helohost
=============== helohost ====================
domain.com
=============== helohost ====================
#chmod 755 /var/qmail/control/helohost
如果你用的邮件服务器是postfix就这样处理
postconf -e "smtp_helo_name = 我的邮件服务器的域名(A记录)"
如果你用的邮件服务器是sendmail就这样处理
vi /etc/sendmail.cf
Cw我的邮件服务器的域名(A记录)
5.修正邮箱无退信问题
# rm -f /usr/sbin/sendmail
# ln -s /var/qmail/bin/sendmail
如果用qmailadmin管理邮箱则这样处理
进入qmailadmin 主菜单“邮件账号”Set no default catch all account 就OK了。这时网页上面的CatchAll应该显示为Bounced。
6.修改config_inc.php文件
# cd /var/www/html/igenus/config
# vi config_inc.php
=============== config_inc.php ====================
$CFG_BASEPATH = "/var/www/html/igenus";
$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_USER = 'vpopmail';
$CFG_MYSQL_PASS = '****'; 这里改成你的密码
$CFG_MYSQL_DB = 'vpopmail';
$CFG_TEMP = $CFG_BASEPATh."/temp";
==============================================
7.重新编制Mysql数据库表格
#mysql -u root -p
mysqluse vpopmail;
mysqlalter table vpopmail drop primary key;
mysqlalter table vpopmail add column pw_id int(5) NOT NULL primary key auto_increment;
mysqlcreate 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;
8.如果需要,用vadddomain和vadduser添加新域名和新用户
9.Qmail限制附件的大小
在/var/qmail/control/databytes 文件中设置附件的大小,可以实现对qmail附件大小的限制,一般安装完成后,这个文件是没有的,你可以自己创建。
smtp方式是以qmail的databytes作限制的
创建databytes并设置邮件最大为4m
# echo 4000000 /var/qmail/control/databyte
10.限制单域的邮箱数量
vi /home/vpopmail/domains/domain.com/.qmailadmin-limits
===============.qmailadmin-limits ====================
maxpopaccounts 200
default_quota 52428800s
===============.qmailadmin-limits ====================
chmod 700 /home/vpopmail/domains/domain.com/.qmailadmin-limits
chwod vpopmail:vchkpw /home/vpopmail/domains/domain.com/.qmailadmin-limits
这样就把邮箱总数限制在200个,每个邮箱为50M了
11.用qmail封mailfrom
vi/var/qmail/control/badmailfrom
这个控制文件实现拒收邮件功能的,每一个地址要单独一行。而且,不用重起qmail就能生效。例如:
peng@96633.net -----限制一个特定的用户
@sina.com -----限制整个域中的邮件
12.设置igenus 定义允许上传下载的邮件的大小
# vi /etc/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
# vi /etc/httpd/conf.d/php.conf
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 4242880
九、编辑qmail自启动脚本
#vi /etc/rc.d/init.d/qmail
===================== qmail ======================
#! /bin/sh
# chkconfig: 2545 90 90
# description: qmail (include smtp and pop3) auto start/stop scripts.
. /etc/rc.d/init.d/functions
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:"
killproc qmail-send
killproc qmail-clean
killproc qmail-rspawn
killproc qmail-lspawn
killproc splogger
killproc tcpserver
;;
*)
exit 1
;;
esac
exit 0
==============================================
#chmod 755 /etc/rc.d/init.d/qmail
#chkconfig --add 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/html --disable-ezmlmdir
make
make install-strip
再一次执行
chmod -R 0755 /var/www/html/igenus
chmod -R 0755 /var/www/html/images
chown -R vpopmail:vchkpw /var/www/html/igenus
chown -R vpopmail:vchkpw /var/www/html/images
汉化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
000 gb2312
001 主菜单
002 邮件帐号
003 添加邮件机器人:
004 邮件机器人的名字:
005 发送拷贝到邮件地址:
006 标题:
007 添加转发帐号:
008 转发到邮件地址:
009 本地邮件用户名:
010 要转发的邮件地址的格式是:user@domain.com.
本地邮件用户的格式是: popaccount
例如,
如果转发 本地用户: sales到邮件地址: joe@domain.com
那么所有发到sales用户的邮件都将转发到 joe@domain.com这个邮件地址中
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 没有邮件机器人可供显示
生成自己的简体中文菜单文件/usr/local/share/qmailadmin/html/en-us
cp /usr/local/share/qmailadmin/html/en /usr/local/share/qmailadmin/html/en-us
生成admin表
mysqluse vpopmail;
mysqlCREATE 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 ;
十二、建立QMAIL防火墙FOR ADSL。
echo 1
/proc/sys/net/ipv4/ip_forward
/sbin/iptables -F INPUT
/sbin/iptables -F FORWARD
### enable client to vist the web-server on internet
/sbin/iptables -A OUTPUT -o ppp0 -p tcp --sport 1024:65535 -d any/0 --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -i ppp0 -p tcp ! --syn -s any/0 --sport 80 --dport 1024:65535 -j ACCEPT
### SET IP-MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
### ip packets limit
/sbin/iptables -A FORWARD -f -m limit --limit 10/s --limit-burst 10 -j ACCEPT
/sbin/iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 3 -j ACCEPT
/sbin/iptables -A INPUT -i ppp0 -p icmp -j DROP
### enable some internet-service on intranet for the clients on internet
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
### open some port for ftp-users to use passive mode
/sbin/iptables -A INPUT -i ppp0 -p tcp --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -i ppp0 -p tcp --dport 110 -j ACCEPT
### disable any port you don't want to be visited
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -i ppp0 -j DROP
十三、补充说明
如果你按照上面的步骤进行了安装,你还需要对一些PHP页面进行修改以便适合你的应用,
可使用VI直接打开修改。我这里就不在一一列举了。
关于上面提到的软件包也可以从我这里下载:ftp://test:123456@nero.3322.org/qmail
测试邮箱:http://nero.3322.org/igenus
管理邮箱:http://domain.com/cgi-bin/qmailadmin
,