在Linux下用Qmail建部门邮件服务器
点击次数:27 次 发布日期:2008-11-22 09:42:25 作者:源代码网
|
源代码网推荐一、安装环境 源代码网推荐安装平台: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、使用userName@mydomain.com形式的命名 源代码网推荐#cd/var/qmail/alias 源代码网推荐#echomydomain.com>>locals 源代码网推荐2、改密码 源代码网推荐对于仅开放mail的用户可将shell改成passwd 源代码网推荐#useradd-s/usr/bin/passwduserName 源代码网推荐然后用telnet改密码 源代码网推荐3、qmail1.源代码网供稿. |
