在rhas3.0上建立一个完整的邮件系统修正版

1   rhas3.0上建立一个完整的邮件系统修正版

rhas3.0 + qmail + mysql + smtp + vpopmail + igenus + qmailadmin
一、安装说明。
为了方便安装我在安装Redhat3.0时选了apachephpmysql,注意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  (tcpsever  服务程序)
#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 (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 < 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
#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.如果存在postfixsendmail,将它们停用
#/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 (虚拟域用户pop3支持)
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.添加mysqlvpopmail用户,用于操作vpopmail数据库
#mysqladmin -u root password **** 设置mysqlroot密码。
#mysql -u root -p
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"
#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 (建立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=domain.com
--enable-passwd=n
--enable-defaultquota=52428800s (10485760:10MB
20971520:20MB52428800s: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 &
================== 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>&1 | /var/qmail/bin/splogger smtpd 3 &
=================== 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 &
======================= 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"
查看POP3SMTP是否工作
# telnet 192.168.0.1 110
# telnet 192.168.0.1 25
注意在outlook中设置邮件帐号时,用户名后要加上域名,如llzqq@domain.com。如果qmail出现问题,可查看mysql中的vpopmail数据库,/var/log下的mysqldmaillog日志记录。

八、安装并运行igenus (iGENUS 只是一个 Webmail 接口,需要配合 qmail+vpopmail+Mysql 使用)
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
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;

8.
如果需要,用vadddomainvadduser添加新域名和新用户
9.Qmail
限制附件的大小
/var/qmail/control/databytes 文件中设置附件的大小,可以实现对qmail附件大小的限制,一般安装完成后,这个文件是没有的,你可以自己创建。
smtp
方式是以qmaildatabytes作限制的
创建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.
qmailmailfrom
#
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 &
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


FreeBSD下:

Port:

#cd /usr/ports/mail/autorespond

#make

#make install

手动:

# tar xvzf autorespond-2.0.5.tar.gz

# cd autorespond-2.0.5

# patch -p1 < ../autorespond-2.0.5-conf-strcasestr.patch

# make

# make install


十一、
ezmlm and ezmlm-idx with MySQL support(一个基于qmail的管理邮件列表的工具)
ezmlm-idx包含有对ezmlm的修正和补充,他们是一个整体
# tar -zxvf ezmlm-0.53.tar.gz

# tar -zxvf ezmlm-idx.0.40.tar.gz

# mv ezmlm-idx-0.40/* ezmlm-0.53/


# cd ezmlm-0.53
#
patch < idx.patch
#
make mysql #MySQL 支持
#
make clean
#
make man
#
make ch_GB #汉字GB2312支持
#
make setup
十二、安装qmailadmin-1.0.6.tar.gz (虚拟域web管理)
#
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 目录权限错误
1
44 文件权限错误
1
45 无效用户内部错误
1
46 Cannot Do redirect
1
47 Redirect Now
1
48 无效邮件地址
1
49 Cannot Delete Last Entry
1
50 文件错误
1
51 Line Deleted Succesfully
1
52 转发添加成功
1
53 用户名不存在
1
54 别名添加成功
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
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 ;



sqwebmail

伴随1.0发布的sqwebmail安装脚本不可用,请大家注意!

在脚本中设定的环境变量好像不起作用,如果用手工方式设定环境变量,然后执行 ./configure ...... 就一切OK!我不知道是什么原因,如果你解决了这个问题,请不吝赐教

1: 确保已经下载了最新的preauthvchkpw.cif use vpopmail4.10.X

#tar -zxvf sqwebmail-2.1.1.tar.gz

#cp -f preauthvchkpw.c sqwebmail-2.1.1/authlib

2:编译

#cd sqwebmail-2.1.1

#设定环境

#INCS=-I/usr/include/mysql

#export INCS

#LIBS="-L/usr/lib/mysql -lmysqlclient -lz"

#export LIBS

#CPPFLAGS=-I/usr/include/mysql

#LDFLAGS=-L/usr/lib/mysql

#export CPPFLAGS

#export LDFLAGS

#./configure --with-cachedir --without-gzip --enable-webpass=yes /

--enable-softtimeout=300 --enable-autopurge=180 --enable-maxpurge=180 /

--with-htmllibdir=/var/www/sqwebmail --enable-cgibindir=/var/www/cgi-bin /

--enable-imagedir=/var/www/images/sqwebmail /

--enableimageurl=/images/sqwebmail/ /

--enable-mimecharset=gb2312 --with-maxargsize=5000000 /

--with-maxformargsize=5000000 --with-maxmsgsize=5000000 --without-ispell /

--with-authshadow --without-authmysql --with-authldap --with-authuserdb /

--with-authpwd --without-authpam --with-authvchkpw --without-authdaemon

make configure-check;make;make check;make install-strip;make install-configure

#系统用户采用shadow验证,虚拟域采用vchkpw验证,禁止其他验证方式

#echo "authvchkpw authshadow" > /var/www/sqwebmail/authmodulelist

·  3:关于gb2312的说明:

按照“SqWebMail Language translations”的说明,似乎设定其他语言是一件很复杂的事,由于 “SqWebMail Language translations”没有随版本更新,不清楚对于sqwebmail-2.1.1来说有没有变动,但我没有按照它说的去做,而是这样:

#cd /var/www/sqwebmail/html

#mkdir zh_CN

#cp en_us/* zh_CN/

#rm -f en

#ln -s zh_CN en

#设定

#cd en

#echo zh_CN > LANGUAGE

#echo zh_CN zh_CN >LANGUAGE_PREF

#echo zh_CN > LOCALE

#echo gb2312 > CHARSET

然后编辑所有.html文件,换成汉字。使用中没有发现问题。

·  4:测试

打开浏览器,http://xxx.xxx.xxx.xxx/cgi-bin/sqwebmail

输入用户名、口令,OK!(系统用户直接输入用户名、虚拟域用户输入Email地址:user@domain.com

 

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

2  

建立qmail服务器的防病毒系统

所需软件:
maildrop-1.5.2.20030423.tar.gz
perl-Time-HiRes-1.38-3.i386.rpm
clamav-0.65.tar.gz
qmail-scanner-1.20.tgz


安装maildrop
#
tar zxvf maildrop-1.5.2.20030423.tar.gz
#
cd maildrop-1.5.2.20030423
./configure
make
make install-strip
make install-man

安装 perl-Time-HiRes-1.38-3.i386.rpm
rpm -ivh perl-Time-HiRes-1.38-3.i386.rpm

安装clamav-0.65.tar.gz
#groupadd clamav
#useradd –g clamav –s /bin/false clamav
#tar zxvf clamav-0.65.tar.gz
#cd clamav-0.65
./configure
make check
make install


更新病毒库
运行freshclam
freshclam加入crontab 定时更新病毒库
#
vi /usr/local/etc/clamav.conf
注释掉Example
执行clamscan
执行clamd
然后执行clamdscan

安装qmail-scanner-1.20.tgz
#
groupadd qscand
#useradd -g qscand -s /bin/false qscand
#tar zxvf qmail-scanner-1.20.tgz
#cd qmail-scanner-1.20
./configure --qmail-queue-binary /var/qmail/bin/qmail-queue --admin postmaster
--domain nero.3322.org --notify sender,admin --local-domains nero.3322.org --lang en_GB --debug yes --unzip yes --scanners clamscan --install

在编译过程中需要安装perl-DB_File-x.x.x.rpm,在光盘中可找到。
#
chown qscand:qscand /var/qmail/bin/qmail-scanner-queue.pl
#chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl
然后用一个普通用户登陆,执行/var/qmail/bin/qmail-scanner-queue.pl -z
如果没有Can't do setuid出现,恭喜你,如果有
回到安装文件目录,有个contrib目录,
#
make
#
make install

附加步骤:
#
chown qscand:qscand /var/qmail/bin/qmail-scanner-queue
#chmod 4755 /var/qmail/bin/qmail-scanner-queue
#chmod 0755 /var/qmail/bin/qmail-scanner-queue.pl

然后用一个普通用户登陆,执行
#
/var/qmail/bin/qmail-scanner-queue -z
#/var/qmail/bin/qmail-scanner-queue -g
修改环境变量
1.
在你的qmail启动脚本加入
QMAILQUEUE=/var/qmail/bin/qmail-scanner-queue.pl
如果作了附加步骤用下面的
#
QMAILQUEUE=/var/qmail/bin/qmail-scanner-queue
#export QMAILQUEUE
2
.修改qmail-scanner-queue.pl中的
my $clamscan_options="-r --disable-summary --max-recursion=10 --max-space=1000000";
my $clamscan_options="-r --mbox --disable-summary --max-recursion=10 --max-space=1000000";


重起qmail 测试
这里有测试程序
#
/software/qmail-scanner-1.20/contrib/test_installation.sh

主要的排错监测日志
/var/spool/qmailscan/quarantine.log
/var/spool/qmailscan/qmail-queue.log
/var/log/clamd.log
/var/log/maillog


qmail + vpopmail + igenus邮件服务器添加新功能

1
注册新用户和找回密码
建立数据库
#mysql -u root -p
mysql>
use vpopmail;
mysql>
CREATE TABLE password (
id int(11) unsigned NOT NULL auto_increment,
pw_name varchar(32) NOT NULL default '',
pw_domain varchar(64) NOT NULL default '',
problem varchar(32) NOT NULL default '',
answer varchar(32) NOT NULL default '',
KEY answe (id)
) TYPE=MyISAM PACK_KEYS=1;


安装软件包 password.rar其中有五个文件
signup.php,  submit.php是注册用的
getpassword.php,  getpassword2.php,  getpassword3.php是找回密码用的.
中间有关默认域名的地方.自行修改为自己的默认域名.
如果igenus安装到/var/www/html/igenus的话,就把这五个文件解压缩到/var/www/html目录下,然后在首页的index.php文件中增加相应的链接就可以了.


2
自动转发
把发往自己邮箱的邮件定向到其他邮箱
mysql>
use vpopmail;
mysql>
CREATE TABLE forword (
id int(11) unsigned NOT NULL auto_increment,
pw_id int(5) NOT NULL default '0',
email varchar(64) NOT NULL default '',
success int(1) NOT NULL default '0',
save int(1) NOT NULL default '0',
PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1;


3
个人资料
mysql>
use vpopmail;
mysql>
CREATE TABLE personal (
id int(11) unsigned NOT NULL auto_increment,
pw_id int(5) NOT NULL default '0',
truename varchar(10) NOT NULL default '',
fax varchar(20) NOT NULL default '',
telephone varchar(15) NOT NULL default '',
sex int(1) NOT NULL default '0',
year int(4) NOT NULL default '',
month int(2)NOT NULL default '',
day int(2)NOT NULL default '',
education varchar(4) NOT NULL default '',
marital int(1) NOT NULL default '',
occupation varchar(15) NOT NULL default '',
companyname varchar(30) NOT NULL default '',
province varchar(6) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1;


4
通告栏
只有域管理员可以发给该域的所有用户通告,而该域的所有用户只可以查看通告
mysql>
use vpopmail;
mysql>
CREATE TABLE board (
id int(11) unsigned NOT NULL auto_increment,
num int(5) NOT NULL default '0',

title varchar(50) NOT NULL default '',
content varchar(255) NOT NULL default '',
host varchar(50) NOT NULL default '',
allhost int(1) NOT NULL default '0',
PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1;

5收藏夹
mysql>
use vpopmail;
mysql>
CREATE TABLE stow (
id int(11) unsigned NOT NULL auto_increment,
pw_id int(5) NOT NULL default '0',
name varchar(64) NOT NULL default '',
http varchar(128) NOT NULL default '',
memo varchar(255) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1;

6
名片夹
mysql>
use vpopmail;
mysql>
CREATE TABLE card (
id int(11) unsigned NOT NULL auto_increment,
pw_id int(5) NOT NULL default '0',
addrname varchar(10) NOT NULL default '',
companyname varchar(30) NOT NULL default '',
address varchar(255) NOT NULL default '',
job varchar(255) NOT NULL default '',
telephone varchar(20) NOT NULL default '',
mobile varchar(15) NOT NULL default '',
email varchar(50) NOT NULL default '',
bearing varchar(4) NOT NULL default '',
note varchar(255) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1;


Linux+adsl+qdns

一、安装拨号软件包
  为了以后的防火墙应用我安装了两块网卡要确保其工作正常:
  # ifconfig eth0 eth0接内网
#
ifconfig eth1 eth1ADSL
  删除默认网关
  在文件 /etc/sysconfig/network 中删除 GATEWAY= 这一行,然后执行
  # service network restart
  安装pppd软件包
  如果存在文件 /usr/sbin/pppd,则说明已经安装了pppd
  如果未安装,RedHatLinux安装光盘上可找到这个软件包。
#
rpm –ivh rp-pppoe-3.5.2.i386.rpm

二、配置PPPOE客户端软件
adsl
安装很简单我就不多说了
#
adsl-setup
安装完软件包后配置/etc/sysconfig/network-scripts/ifcfg-ppp0
#
vi /etc/sysconfig/network-scripts/ifcfg-ppp0,修改
PPPOE-TIMEOUT=0
CONECT-TIMEOUT=0
#
cp /etc/sysconfig/network-scripts/ifcfg-ppp0  /etc/ppp/pppoe.conf

附加信息:

Congratulations, it should be all set up!

Type '/sbin/ifup ppp0' to bring up your xDSL link and '/sbin/ifdown ppp0'

to bring it down.

Type '/sbin/adsl-status /etc/sysconfig/network-scripts/ifcfg-ppp0'

to see the link status.


三、安装设置动态域名QDNS
登录http://www.3322.org/网站,注册一个用户,申请一个动态域名
domain.3322.org

并下载linux客户端软件:ez-ipupdate-3.0.10-linux-i386.tgz
安装软件
#
tar zxvf ez-ipupdate-3.0.10-linux-i386.tgz
#
mv ez-ipupdate-3.0.10-linux-i386 /usr/local/ezip
#
chmod 755 /usr/local/ezip/ez-ipupdate
#
chmod 755 /usr/local/ezip/qdns.conf
#
cp /usr/local/ezip/qdns.conf /usr/local/bin
#
cp /usr/local/ezip/ez-ipupdate /usr/local/bin
编辑/usr/local/ezip/qdns.conf文件:
#
vi /usr/local/ezip/qdns.conf
service-type=qdns
user=your use rname:your password
host=domain.3322.org
interface=ppp0
max-interval=2073600
cache-file=/tmp/ez-ipupdate.cache
将当前ip更新到我们申请的域名:
#
/usr/local/ezip/ez-ipupdate –c qdns.conf
系统会提示数据更新成功。
实现拨号连接建立后自动更新域名:
修改/etc/ppp/ip-up脚本
#
vi /etc/ppp/ip-up
exit 0前增加一行
/usr/local/ezip/ez-ipupdate -c /usr/local/ezip/qdns.conf
设置每隔五分钟自动同步一下你的域名
#
crontab -e然后加入下面一行:
0-59/50-59/5 * * * * /usr/local/bin/ez-ipupdate -
c /usr/local/bin/qdns.conf


四、测试
  # adsl-start
  
# adsl-status
  在输出中应该含有关于
ppp0 的信息,包括从dhcp得到的IP 地址。
  #
ping domain.3322.org
  如果解析出正确的ip,说明拨号连接已经建立并且能正确的解析动态域名。

附加内容:

 动态域名
首先去http://www.3322.org/ 申请动态域名。申请之后,在http://www.3322.org/dyndnspage/ez-ipupdate-3.0.10-freebsd4.4-i386.tgz下载他的客户端。然后解压缩,我是解压缩到 /usr/local/bin下的。在里面找到qdns.conf, 那个就是3322.org动态域名的配置文件。在配置文件里面写入:
user=hefish:xxxxxxx #hefish是你申请时的用户名,xxxxxxx是密码
host=web.3322.org #这是你申请的动态域名。
interface=tun0 #这是域名所要指向的IP所在的设备,我们是ADSL拨号,设备就是tun0

写完保存后,就可以启动动态域名了,我是这样启动的
/usr/local/bin/ez-ipupdate -c /usr/local/bin/qdns.conf

之后我们可以用nslookup来看一下,是不是已经把我们注册的动态域名指向了我们刚刚拨号所分配地址。

如果我们不想每次拨号都输入这个命令,你可以把他写到/etc/ppp/ppp.linkup文件中,每次拨号完毕的时候就可以自动运行域名信息更新程序。我的ppp.linkup文件是这样的:
adsl:
iface clear
!bg /usr/local/bin/ez-ipupdate -c /usr/local/bin/qdns.conf

adsl是拨号的配置标号, !bg表示在后台运行ez-ipupdate,注意每一行都是以空格开始的。

                

                            

1 贴  qmail的pop3收信慢的解决方案(网管必看)

 

下午的时候兼职公司网管告诉我,公司的邮件服务器收信速度很慢,而发信正常,用outlook测试发现pop连接超时无法接受邮件,登录到服务器上以后执行

telnet 127.0.0.1 110速度正常

而执行

telnet 主机名 110 则速度巨慢无比

则腾到0:30

最后在pop3的启动教本里加了几个参数就搞定了,具体步骤是

tcpserver后加上-H -U -t 1 -l 0然后重新启动qmail-pop3d就一切OK了

不要问我为社么大家自己去看手册吧,呵呵.好累,睡觉去咯

                                                                                                                           ---好男儿
                                                                                                                                                        yhj1065

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值