Qmail的优点及安装调试 - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- Qmail的优点及安装调试 (http://www.webasp.net/article/12/11100.htm) |
| -- 作者:未知 -- 发布日期: 2004-06-11 |
|
实践证明,基于Windows NT 的Exchange Server并不是企业级电子邮件系统的最佳选择。由于对稳定性等性能要求非常高,因此大型电子邮件系统一般都使用UNIX作为服务器的操作系统,例如,Hotmail使用FreeBSD和Solaris,国内163等站点也是采用BSD系列。追求稳定的大型企业可采用FreeBSD和Solaris,普通中小企业可采用Linux。
大家都看到了Qmail的诸多优点,下面我就介绍一下它的安装及使用方法。 Qmail安装及设定
可以通过访问www.qmail.org或mirror站点下载qmail-1.03.tar.gz,以及获得 更多qmail的资料.
获得qmail-1.03.tar.gz后,用tar命令解包 #tar xzvf qmail-1.03.tar.gz
#mkdir /var/qmail
# useradd -g nofiles -d /var/qmail/alias alias # useradd -g nofiles -d /var/qmail qmaild # useradd -g nofiles -d /var/qmail qmaill # useradd -g nofiles -d /var/qmail qmailp # groupadd qmail # useradd -g qmail -d /var/qmail qmailq # useradd -g qmail -d /var/qmail qmailr # useradd -g qmail -d /var/qmail qmails
2.4 阅读INSTALL.ctl和FAQ,配置qmail,最简单的方法是 #./config 或者 #./config-fast your.full.home.name
# (cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root) # chmod 644 ~alias/.qmail*
# cp /var/qmail/boot/proc /var/qmail/rc
# csh -cf ’/var/qmail/rc &’
qmail: status: local 0/10 remote 0/20 qmail-send通常是输出"status"或者"cannot start"如果不能正常启动.
qmail-send,以qmails用户运行 qmail-lspawn,以root用户运行 qmail-rspawn,以qmailr用户运行 qmail-clean,以qmailq用户运行 splogger,以qmaill用户运行
注意:要用你的用户名代替me Mail应该立即出现在你的信箱之中./var/log/maillog中应该有如下记录: qmail: new msg 53 qmail: info msg 53: bytes 246 from qp 20345 uid 666 qmail: starting delivery 1: msg 53 to local me@domain qmail: status: local 1/10 remote 0/20 qmail: delivery 1: success: did_1+0+0/ qmail: status: local 0/10 remote 0/20 qmail: end msg 53
% echo to: nonexistent | /var/qmail/bin/qmail-inject qmail: new msg 53 qmail: info msg 53: bytes 246 from qp 20351 uid 666 qmail: starting delivery 2: msg 53 to local nonexistent@domain qmail: status: local 1/10 remote 0/20 qmail: delivery 2: failure: No_such_address.__#5.1.1_/ qmail: status: local 0/10 remote 0/20 qmail: bounce msg 53 qp 20357 qmail: end msg 53 qmail: new msg 54 qmail: info msg 54: bytes 743 from <> qp 20357 uid 666 qmail: starting delivery 3: msg 54 to local me@domain qmail: status: local 1/10 remote 0/20 qmail: delivery 3: success: did_1+0+0/ qmail: status: local 0/10 remote 0/20 qmail: end msg 54 你将立即收到弹回的信件.
% echo to: me@wherever | /var/qmail/bin/qmail-inject qmail: new msg 53 qmail: info msg 53: bytes 246 from qp 20372 uid 666 qmail: starting delivery 4: msg 53 to remote me@wherever qmail: status: local 0/10 remote 1/20 qmail: delivery 4: success: 1.2.3.4_accepted_message./... qmail: status: local 0/10 remote 0/20 qmail: end msg 53 投递过程将在starting delivery和success中有个间断,SMTP传送是相对较慢的 然后去检查一下me@wherever是否正确收到email.
命令.具体方法可以在TEST.deliver中找到. 2.8 从Sendmail象Qmail转移.
看上去象这样的命令: sendmail -bd -q15m 将其注释掉.
如果sendmail有子进程,可以反复用-STOP和-CONT信号杀,直到没有 子进程后用-TERM后加-CONT杀就可以了.
以后一段时间不定期的运行sendmail.bak -q直到队列清空.
# chmod 0 /usr/lib/sendmail # chmod 0 /usr/sbin/sendmail # chmod 0 /usr/lib/sendmail.mx
# mv /usr/lib/sendmail /usr/lib/sendmail.bak # mv /usr/sbin/sendmail /usr/sbin/sendmail.bak
csh -cf ’/var/qmail/rc &’ 添加到启动文件中去.
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env /var/qmail/bin/qmail-smtpd
add a line to "/home/u user name/.bash_profile" MAIL=/home/$LOGINNAME/Maildir/ export MAIL 2.9.3 pop3 去www.qmail.org去下载checkpassword,(这个东西qmail不自带)并编译 inet.conf 中的pop-3 pop-3 stream tcp nowait qmaild /var/qmail/bin/qmail-popup mydomain .com /bin/checkpassword /var/qmail/bin/qmail-pop3d (在一行)
cp /var/qmail/boot/home /var/qmail/rc 修改rc文件变成如下 exec env - PATH="/var/qmail/bin:$PATH" \ qmail-start ./Maildir/ splogger qmail
3 qmail的一些特殊配制
# echo ":your.smart.host" > /var/qmail/control/smtproutes
21cn.com 163.com
3.3设置主机多个域名
/var/qmail/control/me
如:webmaster@my.com(webmaster用户本地不存在) 转发给user1@my.com(user1为 本地用户) 方法: echo "user1">/var/qmail/alias/.qmail-webmaster 或 echo "user1@21cn.com">/var/qmail/alias/.qmail-webmaster 完全的email地址
/var/qmail/alias/.qmail-list内添加 user1 user2 user3 3.6 本地用户扩展
设定发信给:user1-s1转为q1,user1-s2转为q2, user1-21转为dd@21cn.com,user1-list转为dd@21cn.com,q1,q2,qq user1-xxx(xxx表示其它名称)转为qq, echo "q1">/home/user1/.qmail-s1 echo "qd@21cn.com">/home/user1/.qmail-21 echo "q2">/home/user1/.qmail-s2 echo "qq">/home/user1/.qmail-default 编辑/home/user1/.qmail-list内容为 q1 q2
3.7 如何设置虚拟主机 如: 虚拟主机 ttt.com 设定 webmaster@ttt.com 转给本地用户tttweb 设定 help@ttt.com 转给外地用户help@other.com 设定 其它@ttt.com 转给本地用户tttother 方法: (1)将虚拟主机ttt.com加入/var/qmail/control/local和/var/qmail/control/rcpthosts (2) 然后在/var/qmail/control/virtualdomains中加入 your.virtual.domains:tttcom (3) 加一个用户tttcom adduser tttcom 这样所有发往me@ttt.com都将以testcom-me@test.com 的形式发给testcom, (4) echo "tttweb">/home/testcom/.qmail-webmaster echo "help@other.com">/home/testcom/.qmail-help echo "tttother">/home/testcom/.qmail-default (5)从新启动qmail 3.8 抄送 如:发信给 user1@red.lx,同时抄送给user2,dd@21cn.com 方法:编辑/home/user1/.qamil 内容如下 ./Maildir/ |forward user2 dd@21cn.com
方法:编辑/home/user1/.qamil 内容如下 3.10 如何设置 qmail 为对外smtp服务器?(去掉转信和发信的限止) 去掉/var/qmail/control/rcpthosts文件 |
| webasp.net |