免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1402 | 回复: 0

网络上关于Qmail的安装与测试的文章 [复制链接]

论坛徽章:
0
发表于 2007-04-12 09:17 |显示全部楼层

网络上关于Qmail的安装与测试的文章

1. 软件介绍
1.qmail
什么是qmail
qmail是为了取代sendmail这样的标准MTA(又叫邮件传输代理)程序而面世的。它的制作目的是,提供一个安全的、稳定的、高效的简洁的电子邮件系统。因为,老式的sendmail有着太多缺陷,尽管它的作者不停的修复。
Qmail的优势:
*安全---- Qmail将E-mail处理过程分为多个分过程,尽量避免以Root用户身份运行。同时Qmail也禁止对特权用户(Root、Deamon等)直接发信。
*可靠---- Qmail的直接投递保证了E-mail在投递过程中不会丢失。Qmail同时支持新的更可靠的信箱格式——Maildir,保证系统在突然崩溃情况下不至破坏整个信箱。
*高效----运行在奔腾的BSD上,Qmail每天可以轻松地投递20万封电子邮件。
*简单---- Qmail 要比其他的Internet Mail系统小得多。 它通过统一的向前机制完成Forwarding、Alias和Maillist等功能, Qmail使用简单高效队列来处理投递。Qmail-SMTPD可以由Inetd启动,节省了一定资源。
Qmail的使用简介
编译前修改系统参数。
建立qmail工作目录:
默认情况下,qmail原代码会把qmail的目录设置成/var/qmail,如果你想把这个目录换成其他自己想要的位置,必须在编译前修改qmail-1.03目录中的conf-qmail文件。
Qmail配置参数:
1. Conf-break文件指定了用户定义邮件用户名中的定界符,默认为一个(-),通过修改conf-break文件,邮件管理员能够把中断符从一个破则号改为其他符号。
2. Conf-cc文件是用来指定编译器命令和命令行选项的。默认设置为cc-02.
3. Conf-groups文件指定了qmail用来包含自己创建的用户组。有两个独立的主必须被创建。默认这两个组名为:qmail 和nofiles.其中,qmail组包含了用来控制qmail系统用户名。
Nofiles组是用来服务与那些不允许对系统中的任何文件进行访问的qmail 进程的,这样就增加了qmail的安全性。
4. Conf-ld文件用来指定连接qmail的.o目标文件的命令。默认情况下它被设置为cc-s.
5. Conf-patrn文件用来指名qmail文件默认屏蔽设置(umask),这个参数默认为002。
6. Conf-qmail文件指定了qmail 的目录位置。默认为/var/qmail.
7. Conf-spawn文件用来指定能够在系统上同时运行的本地和远程qmail 会话的最大数目。默认为120。(这个数目不能大于255)
8. Conf-split文件指定了qmail子目录数目,默认为23。
9. Conf-users文件用来指定qmail需要提供给unix 系统的唯一用户名。每个用户名都作为qmail中的一个单独的函数使用。这个文件包括:
Root qmail 的二进制文件所有者。
Alias qmail的别名用户帐号。
Qmaild qmail的守护进程用户帐号。
Qmaill qmail的日志用户帐号。
Qmailp qmail的密码和用户帐号。
Qmailq qmail的排队用户帐号。
Qmailr qmail的远程用户帐号。
Qmails qmail的发送用户帐号。
解决qmail DNS的问题:
qmail 1.03版本有个很龌龊的问题,就是默认情况下,qmail无法处理长度超过512字节的DNS响应包。这个错误出现在qmail的dns.c原码中,其中的DNS包的最大值被设置为512了。Qmail 的开发者写了个补丁程序放到这个dns.c目录文件中,就可以避免这个问题。
这里我门采用更简单直接的办法修改dns.c原码,在dns.c文件的第24行
static union{ HEADER hdr; unsigned char buf[PACKETSZ]; }response;
编译代码前,把这里的PACKETSZ的值改为65536就可以避免这个问题。
编译qmail 源码:
一但你安置前面的说明配置完你的配置文件,就可以对qmail进行编译了。在qmail-1.03目录下键入:make setup check 就可以编译了。
Qmail的基本结构。
编译安装完qmail后,会在你的安装目录下生成下面这些目录。
alias 包含qmail别名文件
bin 包含所有qmail可执行文件
boot 包含在不同邮件环境下启动的qmail脚本
control 包含qmail所有配置控制文件
doc 包含qmail文档文件
man 包含qmail帮助文件
queue 包含qmail邮件队列目录
users 包含为qmail-lspawn创建任何qmail用户数据库。
下面介绍几个主要的qmail程序的用途。
1. qmail-clean 用来从邮件队列中将那些看起来已经投送失败的未发送消息删除掉。
2. qmail-inject 用来把新的消息插入到邮件队列中去.
3. qmail-local 是被qmail用来将消息投送给邮件服务器上的一个本地用户。
4. qmail-lspawn 用来调度本地邮件系统上的邮件投送进程的。
5. qmail-pop3 是一个pop3服务程序的qmail版本,它允许远程客户使用POP协议直接连接到qmail邮件服务妻并阅读他们的信息。这个程序工作在qmail 在Maildir邮箱格式下。
6. qmail-popup 是用在与qmail-pop3d程序的连接上的。Qmail-popup程序在激活qmail-pop3d程序前,验证pop3连接的pop用户id和密码。
7. qmail-qmtpd 用来接收来自远程客户端的qmail连接的。一但请求接收到,任何接收到的消息都会被传送给qmai-queue程序插入到qmail邮件队列中。
8. qmail-queue 用来处理来自qmail-inject 和 qmail-smtpd程序的邮件消息。并将他们移到一个邮件队列中等待发送。
9. qmail-remote程序是用来把邮件消息投送给远程目的邮件主机的。
10. qmail-rspawn是被qmail-send程序调用,他用在将消息传送给远程邮件服务器上的用户时。
11. qmail-send 用在当消息成功放到邮件队列中后,qmail-send 程序就被调用来处理消息。
12. qmail-smtpd 用来监听来自远程邮件服务器的网络连接请求。
13. splogger 用来向系统登陆日志程序插入项的。
qmail的基本使用方法。
建立基本的qmail控制文件。
Qmail有个默认的最重要的控制文件/var/qmail/control/下的me。这个控制文件包含了本地邮件服务器完全合格域名。可以通过各种手段配置这个文件,可以手动写如这个文件你需要的地址或者域名,也可以通过./config来配置。或者echo hostname > /var/qmail/control/me都可以,或者用config-fast gloomy.openet.com.cn 等等。
建立qmail必要的别名
常用的qmail别名文件就3个:
.qmail-root 是用来代替root 用户接收mail 的别名。
.qmail-mailer-daemon 是发送退回消息用的
.qmail-postmaster 是用来处理群发的,这个文件里的用户可以全收到以这个文件为目的地址的mail
在默认情况下qmail不会接收或者发送给root用户的邮件,这个是出与安全考虑。那样如何解决root用户接收mail 的问题呢,这里我们通过建立qmail别名方法解决。
Echo user > /var/qmail/alias/.qmail-root (也可以用vi直接在.qmail-root文件里写)
上面这行命令中,user是一个普通系统用户名,你希望把发给root的mail 都发给user这个用户。一般这个user 都是系统管理员自己的普通用户。
.qmail-mailer-daemon, .qmail-postmaster这两个文件我就不举例说明了,填写方法和.qmail-root一样,你只需要填入自己想填的地址,就可以了。
本地邮件投送方法:
qmail有3种方法能用来投送那些发送给本地邮件服务器上的用户消息。
1. Unix系统邮件方式
2. $HOME/Mailbox方式
3. $HOME/Maidir方式
这里我门采用第3种方式Maidir方式。所以前两种在这里不做介绍了。
由于UNIX系统邮箱有很多龌龊的问题,所以qmail采用Maildir邮箱格式来存储用户的mail.
下面我简单介绍一下Maildir邮箱格式:
maildir格式在每个用户下都设置一个mail路径,Makedir而不是象unix系统的mail格式都把所有用户mail都放到系统/var/spool/mail下
Maildir目录下包括3个子目录:new tmp cur
New:目录用来存放那些还没有被用户阅读过的mail 信息。这个目录存储的每一个消息被给出唯一的文件名,格式为:time.pid.host
例如:1092987790.16131.LINUX-SERVER(时间为标准时间)
cur: 目录是用来存放那些已经被某种类型的MUA程序阅读过的mail 信息的。一但用户已经阅读过这些消息,他就被移动到cur目录中,并使用一个新的文件名,这个文件名格式为:time.pid.host:info,其中time ,pid, host 参数含义和new 子目录相同,info参数是用来帮助标记MUA程序所须的消息状态。1为实验消息标记。2为标准消息标记。例如:
1092987790.16131.LINUX-SERVER:2
tmp:目录是用来在用户邮箱中建立新的邮件消息的。
那么我门如何给用户建立Maildir邮箱呢??
Qmail带一个Maildir实用工具 Maildirmake,用这个命令就可以建立邮箱了。
Maildirmake directory
如果你决定使用Maildir格式,你必须把适当的起动脚本模块copy到/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
启动并测试qmail.
要启动qmail,要求你必须用root用户登陆,然后用下面的命令运行qmail启动脚本:
csh -cf ‘/var/qmail/rc &'
判断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]
有上面这样的显示,表示qmail已经正常启动。
测试qmail本地投送
可以直接用qmail-inject 发送一个消息,这里我们使用RFC822消息格式发送mail.
首先我门创建一个文本文件:test
to: user
from: user
subject: This is a test mail.
This is mail content.....
创建完这个文本后,我门运行命令:$cat test | /var/qmail/bin/qmail-inject来发送mail.
这里:user分别为发送者用户名称,和接受者用户名称。
发送完后,我门可以先用vi打开目的用户主目录下的Maildir/new里的最新的文件,我门会看到:
Return-Path:
Delivered-To: test@hrjy.com
Received: (qmail 16343 invoked by uid 0); 25 Aug 2004 05:29:39 -0000
Date: 25 Aug 2004 05:29:39 -0000
Message-ID:  
to: test@hrjy.com
from: root@hrjy.com
subject: this is a test mail
This is mail content.....
证明本地投送成功。
测试远程投送:
和本地投送一样,只是把test文件里的to:后面的user改为一个mail地址,例如abc@sina.com.cn
测试别名投送:
和本地投送一样,只是把test文件里的to:后面的user改为postmaster
qmail boot起动脚本:
如果上面测试全部成功,我门的qmail安装就基本完成了。下面我说一下如何建立qmail boot脚本文件:
如果想系统boot的时候,就自动起动,必须自己写个脚本:(需要把这个脚本放置在/etc/rc.d/init.d目录下)
然后把这个文件连接到rc.d子目录中,这样可以得到qmail的启动运行及别。
ln -s /etc/rc.d/initd/qmail /etc/rc.d/rc3.d/s81qmail
ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc5.d/s81qmail
###########################################
#!/bin/sh
PATH=/var/qmail/bin
Export PATH
#check that qmail is loaded
[ -f /var/qmail/bin/qmail-start ] || exit 0
case "$1" in
start)
echo -n "Starting qmail..."
deamon /var/qmail/rc
stop)
echo -n "Stopping qmail..."
killall qmail-send
restart)
$0 stop
$0 start
*)
echo -n "Usage: $0 {start | stop | restart}"
exit 1
esac
exit 0
################################################
2.checkpassword。
一但pop3网络连接建立成功了,pop3服务必须能够认证远程客户机器身份。这使得服务器能够知道。连接的client能够访问那些用户的信箱。
Pop3协议支持几种不同的认证方法,qmail-pop3d程序自身不能认证pop3连接,他需要另一个独立的程序来完成认证。一般我门使用较为常用的checkpassword程序。
安装checkpassword程序步骤:
1. 下载员代码
2. Make setup check
安装成功后,我门可以测试一下checkpassword程序是否正常工作。
# /var/qmail/bin/qmail-popup localhost checkpassword pwd
+OK  
user test
+OK
pass test
/home/test
#
3.Ucspi-tcp。
使用ucspi-tcp程序配置qmail-smtpd和qmail-pop3d
ucspi-tcp是独立与xinetd外的另一种网络连接方法。可以说ucspi-tcp对于xinetd进程进
了改进,它可以用于任何网络应用。Ucspi-tcp与xinetd两这比较,ucspi-tcp的优势如下:
。UCSPI端口独立于底层通信介质。
。UCSPI 允许shell脚本程序利用网络户连。
。UCSPI 程序建立了UNIX环境变量,这些变量定义了可以被呈现和用户使用的网络信息。
下面说明如何安装ucspi-tcp包:
1.下载原码
2.Tar zxvf ucspi-tcp-0.88.tar.gz
3.Make setup check
安装完,会自动将ucspi-tcp所有程序安装到/usr/local/bin目录下去。
下面简单介绍一下ucspi-tcp个程序的用途:
1. tcpserver: 此程序是代替xinetd程序的,他接受来自远程客户端的TCP连接并将其传给定义在命令行参数中的一个应用程序。命令行格式为:
Tcpserver options host port application
其中,host和port参数指定了将要运行应用程序本地服务的主机名及端口号。Application参数定义了连接建立后要传给的应用程序。Options参数为程序的行为。具体请查看ucspi-tcp帮助。
2. tcpclient:用来与一个远程服务器建立网络连接。并将此连接传给一个应用程序。格式为:tcpclient options host port appplocation
参数的含义与tcpserver类似。
3.Tcprules:用来创建可以限制与应用程序连接的规则。邮件管理员能够创建规则,来
明确的接受或者拒绝来自单个邮件地址,多个IP地址,或者全部网络地址。创建规则方法如下:address: action, variable
其中,address参数为地址或者地址匹配,action指出如何处理这些分组,variable包括了处理所需要的任何标识符。
下面说介绍一下简单的tcpserver规则数据库创建及使用方法。
下面我门创建一个文本文件作为tcpserver规则数据库。
#cat > rules.txt
192.168. : allow, RELAYCLIENT="" [允许192。168。网段的TCP请求]
192.168.1.10: deny [拒绝192。168。1。10地址请求]
192.168.2. :deny [拒绝192。168。2。网络地址请求]
:deny [拒绝所有其他在此文件中未出现地址]
#
#cat rules.txt | tcprules rules.cdb rules.tmp [创建规则数据库rules.cdb]
上面文件中[]内的内容为注释,实际文件中不能存在。
创建完规则数据库,还要用激活它。才可以使用。采用下面命令:
tcpserver -p -u 505 -g 505 -x /目录/rules.cdb 0 smtp /var/qmail/bin/qmail-smtpd
-p 允许tcpserver接受连接而不必使用dns查找远程猪机地址
-x 允许tcpserver使用一个规则数据库控制连接
-u 允许tcpserver以qmaild用户ID运行
-g 允许tcpserver以qmail组ID运行
0 表示tcpserver运行在本地主机上。
测试规则数据库是否成功:(针对上面的rules.cdb)
#./tcprulescheck rules.cdb
rule :
deny connection
#CPREMOTEIP=192.168.1.50; export TCPREMOTEIP
#tcprulescheck rules.cdb
rule 192.168.:
set environment variable RELAYCLIENT=
allow connection
#TCPREMOTEIP=192.168.1.10; export TCPREMOTEIP
#tcprulescheck rules.cdb
rule 192.168.1.10:
deny connection
#CPREMOTEIP=192.168.2.50; export TCPREMOTEIP
#tcprulescheck rules.cdb
rule 192.168.2.:
deny connection
#TCPREMOTEIP=192.168.10.10; export TCPREMOTEIP
#tcprulescheck rules.cdb
rule 192.168.:
set environment variable RELAYCLIENT=
allow connection
#CPREMOTEIP=192.169.10.10; export TCPREMOTEIP
#tcprulescheck rules.cdb
rule :
deny connection
#
2.安装配置实例
环境: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  
QUIT (输入QUIT可以退出)
+OK
Connection closed by foreign host.
#
上面情况证明一切正常。
3.测试
a)建立测试用户。
为了实现测试,我门需要建立2个测试的系统帐号。
#cd /usr/sbin/
#./useradd test1
#passwd test1 (口令为test1)
#./useradd test2
#passwd test2 (口令为test2)
下面分别给用户test1,test2分配Maildir邮箱。(注意这里必须用用户权限建立邮箱)
#su test1
$/var/qmail/bin/maildirmake Maildir
$echo ./Maildir > .qmail
#su test2
$/var/qmail/bin/maildirmake Maildir
$echo ./Maildir > .qmail
为了使root用户也能收mail?这样给root的别名用户alias也创建个邮箱。
#su alias
$/var/qmail/bin/maildirmake Maildir
$echo ./Maildir > .qmail
为了测试远程投送,这里我们引用两个email地址:hlxia@0-100.com.cn, xhl_c@hotmail
b)测试qmail本地投送。
首先准备一个RFC822格式的测试文件:
#su test1
$cat > test_mail1
to: test2
from: test1
subject:This is a local test mail.
This is a local test mail content ...
$
现在调用qmail-inject发送mail.
$cat test_mail1 | /var/qmail/bin/qmail-inject
现在检查mail的本地投送是否成功。(//后面的是我的注释)
$ telnet localhost 110
Trying 127.0.0.1...
Connected to LINUX-SERVER (127.0.0.1).
Escape character is '^]'.
+OK  
user test2 //验证用户名
+OK //返回OK说明正确
pass test2 //验证用户口令
+OK
list //列出此用户的邮件列表
+OK
1 427 //此用户现在一共有3封mail
2 424
3 424
.
retr 3 //查看mail 3的内容
+OK
Return-Path:
Delivered-To: test2@magicunix.com
Received: (qmail 4462 invoked by uid 0); 25 Aug 2004 09:51:03 -0000
Date: 25 Aug 2004 09:51:03 -0000
Message-ID:  
to: test2@magicunix.com
from: test1@magicunix.com
subject:This is local a test mail.
This is a local test mail content ...
.
dele 1 //删除mail 1
+OK
list //从新查看mail 列表,发现mail已经不存在了。
+OK
2 424
3 424
.
quit //退出连接。
+OK
Connection closed by foreign host.
c)测试qmail远程投送。
首先准备一个RFC822格式的测试文件:
#su test1
$cat > test_mail2
to: hlxia@0-100.com.cn
from: test1
subject:This is a desc test mail.
This is a desc test mail content ...
$
现在调用qmail-inject发送mail.
$cat test_mail2 | /var/qmail/bin/qmail-inject
打开
hlxia@0-100.com.cn信箱查看是否收到test1发的mail.
d)测试qmail别名投送。
首先准备一个RFC822格式的测试文件:
#su test1
$cat > test_mail3
to: root
from: test1
subject:This is a alias test mail.
This is a alias test mail content ...
$
现在调用qmail-inject发送mail.
$cat test_mail3 | /var/qmail/bin/qmail-inject
检查alias用户是否收到发给root用户的mail
#su alias
$cd ~
$cd Madir/new
1093427463.4465.LINUX-SERVER
说明已经收到了。也可以用telnet localhost 110来打开mail,这里就不做了,具体请参考本地投送那节。
e)测试qmail群发。
首先准备一个RFC822格式的测试文件:
#su test1
$cat > test_mail4
to: postmaster
from: test1
subject:This is a postmaster test mail.
This is a postmaster test mail content ...
$
现在调用qmail-inject发送mail.
$cat test_mail4 | /var/qmail/bin/qmail-inject
现在检查/var/qmail/alias/.qmail-postmaster文件里有多少个别名
test1
test2
alias
hlxia
有4个用户,下面分别检查这4个用户是否都收到刚才发的test_mail4
f)用foxmail测试pop3是否工作正常。
找台能连接到主机的win机器,按下列方法配置foxmail:
电子邮件地址:test2@magicunix.com
SMTP:magicunix.com
POP3:magicunix.com
然后测试连接。如果一切正常,就可以连接上了。然后收一下mail,正常可以发现,2封刚才发送的mail,一个是test1用户发送给test2的,一个是test1群发的。
g)测试tcpserver的规则数据库过滤smtp的功能。
简单的tcpserver规则数据库创建及使用方法一节中有详细的说明,可以参照说明进行测试,这里我就不在重复实现了。




http://publishblog.blogchina.com/blog/tb.b?diaryID=702116


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/16602/showart_276174.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP