80后技术男
分类:
2007-01-19 11:16:57
1 所需软件
1.1 Qmail
版本:1.03
安装方式:源码包
用途:提供邮件系统的基本功能
1.2 Ucspi-Tcp
版本:0.88
安装方式:源码包
用途:
1.3 Ezmlm
版本:0.53
安装方式:源码包
用途:提供邮件系统列表功能
1.4 Qmail-Ldap
版本:qmail-ldap-1.03
安装方式:补丁文件
用途:提供qmail支持ldap的功能
1.5 Ucspi-Tcp-0.88.
版本:0.88
安装方式:补丁文件
用途:
2 软件安装
2.1 创建目录
# su
# umask 022
# mkdir –p /var/qmail
# mkdir –p /var/backup
2.2 解压缩及打补丁
把所用到的安装包放到/usr/local/src中
# cd /usr/local/src
# tar –xvzf qmail-1.03.tar.
# cd qmail-1.03
# patch -p1 < ../qmail-ldap-1
# cd ..
patch -p1 < ../qldap-badrcp
2.3 添加Qmail用户
# add qmail user
userdel alias >/dev/null 2>&1
userdel qmaild >/dev/null 2>&1
userdel qmaill >/dev/null 2>&1
userdel qmailp >/dev/null 2>&1
userdel qmailq >/dev/null 2>&1
userdel qmailr >/dev/null 2>&1
userdel qmails >/dev/null 2>&1
groupdel nofiles >/dev/null 2>&1
groupdel qmail >/dev/null 2>&1
groupadd -g 91 nofiles
2.4 Qmail-1.03
# cd /usr/local/src/
编辑Makefile文件,具体修改见下
修改"#LDAPFLAGS=-DQ
修改"LDAPLIBS=-L/us
修改"LDAPINCLUDES=-
修改"#MDIRMAKE=-DAU
修改"#HDIRMAKE=-DAU
修改"# SHADOWLIBS=-lcr
修改"# BACKUPPATH=/bac
保存退出执行
注意
如果建立的qmail的gid,
#define UID_MIN 100(默认)
#define GID_MIN 100
改为90即可
编译安装
# make setup check
2.5 安装ucspi-tcp-0.88
# tar –xvzf ucspi-tcp-0.88.
# cd ucspi-tcp
# patch -p1 < ../ ucspi-tcp-0.88.
# make
# make setup check
2.6 创建Qmail_control目录文件脚本
# cd /var/qmail/cont
# touch build_control.s
# chmod 700 build_control.s
# vi build_control.s
写入以下内容
echo "uni.avtech.com
echo "uni.avtech.com
echo "uni.avtech.com
echo "dc=cn" > ldapbasedn
echo "127.0.0.1:389"
echo "cn=root,dc=cn"
echo "secret" > ldappassword
echo 0 > ldaplocaldelive
echo 55 > ldapuid
echo 55 > ldapgid
echo "/var/qmail/mai
保存退出,并运行build_control.s
# ./build_control
2.7 创建relay规则文件
2.8 创建qmail启动文件
# cd /var/qmail/boot
# vi /var/qmail/boot
写入以下内容
#!/bin/sh
#Using stdout for logging
# Using control/default
exec env - PATH="/var/qmai
qmail-start ./Maildir/ splogger qmail &
# chmod 700 /var/qmail/rc
2.9 创建smtp和pop3服务的启动脚本
2.9.1 qmail-smtp
#vi /var/qmail/boot
内容如下
/usr/local/bin/
# chmod 700 smtpd
2.9.2 qmail-pop3
# vi /var/qmail/boot
#!/bin/sh
/usr/local/bin/
# chmod 700 pop3
2.10将现存的 /usr/lib/sendma
service sendmail stop >/dev/null 2>&1
chkconfig --
rpm -e fetchmail >/dev/null 2>&1
rpm -e sendmail >/dev/null 2>&1
chmod 0 /usr/lib/sendma
chmod 0 /usr/sbin/sendm
mv /usr/lib/sendma
mv /usr/sbin/sendm
ln -s /var/qmail/bin/
ln -s /var/qmail/bin/
chmod 755 /var/qmail/bin/
2.11建立系统别名
#cd /var/qmail/alia
#touch .qmail-postmast
#chmod 644 /var/qmail/alia
2.12 将启动脚本写入到rc.local文件里
# vi /etc/rc.local
写入(这里面提前写入couri-imap和sqwebmail的启动命令)
/var/qmail/boot
/var/qmail/boot
/var/qmail/boot
/usr/local/sbin
/usr/local/sqwe
2.13 邮件列表
#tar xzf ezmlm-0.53.tar.
#tar xzf ezmlm-idx-
#mv ezmlm-idx-
#d ezmlm-0.53
#patch < idx.patch
#make
#make man
#make setup
cd /usr/local/bin/
./ezmlm-make ~alias/student ~alias/.qmail-s
chown -R alias ~alias/student
./ezmlm-make ~alias/avtech ~alias/.qmail-a
chown -R alias ~alias/avtech
2.14 安装pcre
#tar -xzf pcre-6.3.tar.gz
#cd pcre-6.3
#./configure
#make
#make install
2.15 安装coruier-authlib
#tar -xjf courier-authlib
#cd courier-authlib
#./configure --with-redhat
#make
#make install
#make install-configu
# vi /usr/local/etc/
authmodulelist=
authmodulelisto
# vi /usr/local/etc/
LDAP_SERVER 127.0.0.1
LDAP_PORT 389
LDAP_BASEDN dc=cn
LDAP_BINDDN cn=root,dc=cn
LDAP_BINDPW secret
LDAP_FILTER (objectClass=qm
LDAP_DOMAIN avtech.com.cn
LDAP_GLOB_UID qmaild
LDAP_GLOB_GID qmail
LDAP_HOMEDIR mailMessageStor
LDAP_MAILROOT /var/qmail/mail
#LDAP_MAILDIR mailbox
LDAP_DEFAULTDEL
LDAP_CLEARPW clearPassword
LDAP_CRYPTPW userPassword
LDAP_UID 501
LDAP_GID 501
2.16 安装sqwebmail
#tar -xjf sqwebmail-
#cd sqwebmail-
#./configure \
--prefix=/usr/l
--enable-cgibin
--enable-imaged
--enable-imageu
--with-authldap
--without-authp
--without-auths
--without-authp
--without-authu
--without-authv
--without-authd
--with-cachedir
#make configure-check
#make
#make check
#make install-strip
#make install-configu
3 环境配置
3.1 配置用户邮箱
创建用户邮箱目录
# mkdir /var/qmail/mail
创建添加用户邮箱的脚本
# vi /var/qmail/mail
内容如下
mkdir avtech_cuilei
chmod -R 700 avtech_cuilei
chown -R qmaild.qmail avtech_cuilei
以上是例子,具体数据具体写
# chmod 755 build_mail.sh
执行此脚本即可建立邮箱目录
# ./build_mail.sh
#!/bin/sh
mk_init_maildir
{
ldapsearch -h 127.0.0.1 -x -w "secret" -D "cn=root,dc=cn"
grep "mailMessageSto
sed -i "s:mailMessageS
chmod 700 /tmp/mk_mailbox
/tmp/mk_mailbox
sed -i "s:mkdir -p:chown -R qmaild.qmail:g"
/tmp/mk_mailbox
sed -i "s:chown -R qmaild.qmail:ch
/tmp/mk_mailbox
}
case $
init)
mk_init_maildir
;;
add)
for loop in `cat /tmp/list`
do
mkdir -p /var/qmail/mail
chmod -R 700 /var/qmail/mail
chown -R qmaild.qmail /var/qmail/mail
done
;;
help)
echo -e "init\t --\make branch and checkout the code source"
echo -e "add --\tget the script for db"
;;
*)
echo "usage {init|add}"
;;
Esac
4 测试
me,locals,rcpth
123@123.com
这样所有FROM来自123@1
同样也可以对一个域进行拒收,在
@test.com
这样所有来自test.com的