当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 在Linux下用Qmail建部门邮件服务器

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

Linux服务器 中的 在Linux下用Qmail建部门邮件服务器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 85 ::
收藏到网摘: n/a


一、安装环境
安装平台:RedHatLinux7.3
安装的机器:mail.mydomain.com
软件包:
qmail-1.03qmail基本系统
ucspi-tcp-0.88tcpsever等服务程序
daemontools-0.76监视工具
checkpassword-0.90pop3验证用户的程序
软件来源:
http://www.qmail.org
http://cr.yp.to/
http://inter7.com/main.html
注意:每个包安装前务必先仔细阅读INSTALL和FAQ,很多问题在FAQ都有解决方法。

二、安装步骤
1、准备工作
删除sendmail
#rpm-e--nodepssendmail
2、安装qmail
1)创建qmail安装目录
#mkdir/var/qmail
2)添加qmail必需的用户和组
#groupaddnofiles
#useradd-gnofiles-d/var/qmail/aliasalias
#useradd-gnofiles-d/var/qmailqmaild
#useradd-gnofiles-d/var/qmailqmaill
#useradd-gnofiles-d/var/qmailqmailp
#groupaddqmail
#useradd-gqmail-d/var/qmailqmailq
#useradd-gqmail-d/var/qmailqmailr
#useradd-gqmail-d/var/qmailqmails
3)解压、解包和编译
(假设这些包都下载到/tmp目录下)
#cd/tmp
#tarxzvfqmail-1.03.tar.gz
#cdqmail-1.03
进入qmail目录后,仔细阅读一下README和INSTALL文件.然后开始编译qmail
打DNS补丁
#vidns.c
跳到24行将PACKETSZ改为65536
#makesetupcheck
4)配置
#./config

#./config-fastmail.mydomain.com
5)建立系统别名
#(cd/var/qmail/alias;touch.qmail-postmaster.qmail-mailer-daemon.qmail-root)
#chmod644~alias/.qmail*
可以在这些别名文件中指定管理用户来接受这些系统邮件,如
#echoadmin>~alias/.qmail*
6)建立启动文件和用户的Maildir
说明:个人比较喜欢将Maildir改为.Maildir,以便列目录时隐藏掉
#cp-p/var/qmail/boot/home/var/qmail/rc
 #chmod755/var/qmail/rc
编辑/var/qmail/rc
修改其中./Mailbox成为./.Maildir以支持maildir的pop收信方式,如下:
 #!/bin/sh
 #Usingsploggertosendthelogthroughsyslog.
 #Usingqmail-localtodelivermessagesto~/Maildirbydefault.
 execenv-PATH="/var/qmail/bin:$PATH" qmail-start./.Maildir
其中sploggerqmail指令删除,以后改用multilog
已存在用户建立maildir:
$/var/qmail/bin/maildirmake~/.Maildir
$echo./.Maildir/>~/.qmail
建立maildir的方法(对于后面要建立的用户):
 #/var/qmail/bin/maildirmake/etc/skel/.Maildir
 #echo./.Maildir/>/etc/skel/.qmail
7)删除临时目录
#rm-rf/tmp/qmail-1.03
3、安装ucspi-tcp-0.88
#tarzxvfucspi-tcp-0.88.tar.gz
#cducspi-tcp-0.88
#make
#makesetupcheck
执行文件将被安装在/usr/local/bin中。

4、安装checkpassword
#tarzxvfcheckpassword-0.90.tar.gz
#cdcheckpassword-0.90
#make
#makesetupcheck
#chmodog-rx/bin/checkpassword
执行文件checkpassword将被安装在/bin中。
如果不对/etc/passwd中的用户开放mail,则不需要装checkpassword,而只要装vpopmail就行了。

5、安裝daemontools
#mkdir-p/package
#chmod1755/package
#cd/package

#tar-xvzfdaemontools-0.76.tar.gz
#cdadmin/daemontools-0.76

#package/install

将/etc/inittab中最后一行的svscanboot注释掉
重启:#kill-HUP1
说明:改inittab是个人喜好
6、建立SMTP转信规则
1)建立/etc/tcp.smtp
內容为":allow"
#echo":allow">/etc/tcp.smtp
 此为接受任何Client端所发出子转送信件
 若要拒绝某些IP所发出的Relay则修改/etc/tcp.smtp如下
 192.10.10.:allow,RELAYCLIENT=""
 127.:allow,RELAYCLIENT=""
 如此,除192.10.10.*及127.*之外的所有地址,都将被拒绝转送信件。
 2)转换tcp.smtp成为cdb格式
#/usr/local/bin/tcprules/etc/tcp.smtp.cdb/etc/tcp.smtp.tmp</etc/tcp.smtp
注意:若对tcp.smtp有任何变更,都必須经过tcprules转换成为cdb文件才会生效。
 另外,tcp.smtp若为空白,则表示拒绝所有的转送,因为预设的规则为deny。
 至此,转送规则已建立,稍后将依此规则启动qmail-smtpd。
7、建立启动系统服务脚本
1)建立LOG目录
#mkdir/var/log/qmail
#chownqmaill.nofiles/var/log/qmail
#mkdir/var/log/qmail/smtpd
#chownqmaill.nofiles/var/log/qmail/smtpd
#mkdir/var/log/qmail/pop3d
#chownqmaill.nofiles/var/log/qmail/pop3d

2)设定services
 移除inetd.conf中有关smtp及pop3的设定(加上#号)
注:redhat7.3用xinetd代替inetd了,就不用改了
 编辑/etc/services,确认以下设定(实际并不按下面的顺序):
 smtp25/tcpmail
 #pop-3110/tcp#popversion3
 #pop-3110/udp
 pop3110/tcp
 pop3110/udp
3)写send/smtpd/pop3d的supervise脚本run
#cd/var/qmail
#mkdir-psupervise/qmail-send/log
#mkdir-psupervise/qmail-smtpd/log
#mkdir-psupervise/qmail-pop3d/log
#cdsupervise/qmail-send
#ln-s/var/qmail/rcrun
其它run内容如下:
qmail-send/log/run:
#!/bin/sh
exec/usr/local/bin/setuidgidqmaill/usr/local/bin/multilogt/var/log/qmail
qmail-smtpd/run:
#!/bin/sh
QMAILUID=`id-uqmaild`
QMAILGID=`id-gqmaild`
exec/usr/local/bin/tcpserver-v-p-x/etc/tcp.smtp.cdb-u$QMAILUID-g$QMAILGID0smtp/var/qmail/bin/qmail-smtpd2>&1
qmail-smtpd/log/run:
#!/bin/sh
exec/usr/local/bin/setuidgidqmaill/usr/local/bin/multilogt/var/log/qmail/smtpd
qmail-pop3d/run:
#!/bin/sh
exec/usr/local/bin/tcpserver-v-R0pop3/var/qmail/bin/qmail-popupmail.mydomain.com/bin/checkpassword/var/qmail/bin/qmail-pop3d.Maildir2>&1
qmail-pop3d/log/run:
#!/bin/sh
exec/usr/local/bin/setuidgidqmaill/usr/local/bin/multilogt/var/log/qmail/pop3d
4)建自启动脚本/etc/init.d/qmail
内容如下:
#!/bin/bash
#chkconfig:2345966
#
######################################################################
#Description:Scripttocontrolqmailprocess#
#File:/etc/rc.d/init.d/qmail#
######################################################################
#Setupenvironmentforscriptexecution

./etc/rc.d/init.d/functions

PATH=$PATH:/var/qmail/bin:/usr/local/bin
exportPATH

SVSCANPID="/var/run/svscan.pid"

stopQmail(){
if[-f$SVSCANPID];then
kill`cat$SVSCANPID`
rm-f$SVSCANPID
fi

svc-dx/var/qmail/supervise/qmail-pop3d/log
svc-dx/var/qmail/supervise/qmail-pop3d

svc-dx/var/qmail/supervise/qmail-smtpd/log
svc-dx/var/qmail/supervise/qmail-smtpd

svc-dx/var/qmail/supervise/qmail-send/log
svc-dx/var/qmail/supervise/qmail-send
}

case"$1"in
start)
echo"Startingqmail/smtp/pop3..."
cd/var/qmail/supervise
env-PATH="$PATH"svscan&
echo$!>$SVSCANPID
;;

stop)
echo"Stopingqmail/smtp/pop3..."
stopQmail
;;

restart)
$0stop
$0start
;;

status)
;;

*)
echo"Usage:$0{start|stop|status}"
exit1
esac

exit0

加入chkconfig管理
#chmod755qmail
#chkconfig-addqmail
运行ntsysv关闭或启动服务

三、tips
1、使用[email protected]形式的命名
#cd/var/qmail/alias
#echomydomain.com>>locals
2、改密码
对于仅开放mail的用户可将shell改成passwd
#useradd-s/usr/bin/passwduserName
然后用telnet改密码
3、qmail1.