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

Linux服务器
linux下用cron定时执行任务的方法
.htaccess绑定域名到子目录的方法
linux apache下虚拟主机配置方法
apache 局域网访问配置方案
linux Apache服务器系统安全设置与优化
linux中mac地址绑定方法
linux托盘不断闪烁之解决方法
Apache配置 虚拟转向实例
Apache No space left on device的解决办法
Apache rewrite的重写相关的参数说明
LINUX入门级常用命令20条整理
Ubuntu设置开机自动挂载所有格式硬盘分区
5个可能被你忽略的Linux安全设置方法
学习Apache的mod rewrite、access写法
改版时保留原链接,创建新的URL的方法
rsync中文手册之使用rsync实现网站镜像和备份linux
rsync 数据同步使用详解
linux URL的301重定向代码分析
eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
Apache服务器二级域名的完美实现

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 70 ::
收藏到网摘: 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.