Mar 24

qmail安装/send工作基本原理 晴

, 08/03/24 15:54 , 学习研究 , 评论(0) , 引用(0) , 阅读(6742) , Via 网络整理 | |

安装配置实例

环境:redhat9.0, qmail-1.03, ucspi-tcp-0.88, checkpassword-0.90.

所需软件包
qmail-1.03.tar.gz (http://www.qmail.org)
ucspi-tcp-0_88_tar.gz (http://cr.yp.to/ucspi-tcp.html)
checkpassword-0_90_tar.gz (http://cr.yp.to/checkpwd.html)

1. 卸载SendMail邮件系统
由于大多数Linux发行版本中都预装了SendMail邮件系统,所以在安装qmail 邮件服务器
前最好卸载SendMail邮件服务器,使用如下命令:
#ntsysv (取消系统boot时启动SendMail) 也可以用setup程序来实现。
#mv /usr/lib/sendmail /usr/lib/sendmail.bak
#mv /usr/sbin/sendmail /usr/sbin/sendmail.bak
#mv /usr/bin/newaliases /usr/bin/newaliases.bak
#mv /usr/bin/mailq /usr/bin/mailq.bak

2.配置qmail编译前的一些设置。
a)先在qmail的控制文件me中写入本地机器的域名
echo magicunix.com > /var/qmail/control/me
或者
./config-fast magicunix.com

b)建立相应的配置文件,使用如下命令:
#cd /var/qmail/alias
#touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
#chmod 644 .qmail*


c)给root用户建立个别名用户alias
echo alias > /var/qmail/alias/.qmail-root
( 这里我把用户alias作为root 用户的别名)

d)配置qmail的主目录
这里采用qmail默认目录,所以不需要修改任何地方。

e)设置qmail系统用户组:
#cd /usr/sbin/
#./groupadd nofiles
#./groupadd qmail


f)设置qmail系统用户:
#cd /usr/sbin/
#./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
#./useradd -g qmail -d /var/qmail qmailq
#./useradd -g qmail -d /var/qmail qmailr
#./useradd -g qmail -d /var/qmail qmails


g)解决qmail源码的几个问题:
DNS问题:
在dns.c文件的第24行
static union{ HEADER hdr; unsigned char buf[PACKETSZ]; }response;
把这里的PACKETSZ的值改为65536。

编译时出现errno没有定义的错误问题:
在qmail原代码里的error.h文件的头部填加一条:#include


3. 安装qmail软件包
a)手工创建/var/qmail目录。
#mkdir /var/qmail

b) 编译qmail源代码并安装,使用如下命令:
#tar zxvf qmail-1.03.tar.gz
#cd qmail-1.03
#make setup check

c) 选择邮件的存储方式:
这里采用$(HOME)/Maildir 方式
#cp /var/qmail/boot/home /var/qmail/rc
执行完rc内的内容应该为:
#!/bin/sh
# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Mailbox by default.
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir splogger qmail
4. 建立启动qmail的shell文件start.sh,其内容为:
#cat > start.sh
csh -cf ‘/var/qmail/rc &'


5. 添加Pop3和SMTP服务
可以使用xinetd超级服务器或TcpServer来建立相应的Pop3和SMTP服务,为了支持大容量的邮件用户,建议使用TcpServer来监听服务端口启动相应的服务,建立命令如下:
#tar zxvf ucspi-tcp-0_88_tar.gz
#cd ucspi-tcp-0.88
#make setup check
如果编译出现没有定义errno的错误,在原文件的error.h文件头部填加:#include
#tar zxvf checkpassword-0_90_tar.gz
#cd checkpassword-0.90
#make setup check
如果编译出现没有定义errno的错误,在原文件的error.h文件头部填加:#include


建立tcpserver规则数据库:
#cd /usr/local/bin/
#cat > rules.txt
192.168. : allow, RELAYCLIENT=""
192.168.1.10: deny
192.168.2. :deny
:deny
#
#at rules.txt | tcprules rules.cdb rules.tmp


修改上面建立的启动脚本start.sh文件,修改后的内容如下:
#cat start.sh
csh -cf ‘/var/qmail/rc &'
tcpserver -u 502 -g 501 -c 100 -x /usr/local/bin/rules.cdb 0 smtp /var/qmail/bin/qmail-smtpd &
tcpserver -c 100 0 pop3 /var/qmail/bin/qmail-popup magicunix.com /bin/checkpassword /var/qmail/bin/qmail-pop3d ./Maildir/ &
(注意: 最后一个参数必须和/var/qmail/rc中的qmail-start的第一个参数一致,比如
qmail-start ./Maildir/ splogger qmail )

修改/var/qmail/control/rcpthosts文件,来增加SMTP接收邮件的域
例如:
#cat /var/qmail/control/rcpthosts
magicunix.com
hryj.com.cn
sina.com.cn
openet.com.cn


6. 启动qmail进程
a)启动qmail
#cd /var/qmail
#./start.sh

b)检察qmail个进程是否启动正常:
#ps -ef | grep qmail
qmails 29052 29051 0 Aug23 ? 00:00:00 [qmail-send]
qmaill 29055 29052 0 Aug23 ? 00:00:00 [splogger]
root 29056 29052 0 Aug23 ? 00:00:00 qmail-lspawn ./Maildir
qmailr 29057 29052 0 Aug23 ? 00:00:00 [qmail-rspawn]
qmailq 29058 29052 0 Aug23 ? 00:00:00 [qmail-clean]

c)检查smtp是否已经开起:
# telnet localhost 25
Trying 127.0.0.1...
Connected to LINUX-SERVER (127.0.0.1).
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.12.8/8.12.8; Wed, 25 Aug 2004 17:44:43 +0800
QUIT(输入QUIT可以退出)
221 2.0.0 localhost.localdomain closing connection
Connection closed by foreign host.
#

检查pop3是否已经开器
# telnet localhost 110
Trying 127.0.0.1...
Connected to LINUX-SERVER (127.0.0.1).
Escape character is '^]'.
+OK <4114.1093427217@magicunix.com>
QUIT (输入QUIT可以退出)
+OK
Connection closed by foreign host.
#
上面情况证明一切正常。
内文分页: [1] [2] [3]

出处:网络整理
转载时必须以链接形式注明出处及本声明!

发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]