当前位置:Linux教程 - Linux - Qmail+MH(上)

Qmail+MH(上)

那些想要为他们的EMAIL使用以上组合的用户,我归纳了一些安装经验来为他们提供某些帮助。我刚得到了一些新的关于LINUX管理信息,所以决定更新这期MINI-HOWTO。


1.介绍
什么是QMAIL?我们该怎样正确使用它?以下将给出一些解释说明。
QMAIL是一个安全、可靠、高效、简洁的信息传送的代理。它现在完全替代了典型互联网上以unix作为平台的主机上发送-接收的系统。
安全:安全不仅仅是一个目标,而且无疑是一个需要。用户对发送邮件的要求很高;它不能出一点差错,所以必须绝对安全可靠。(这就是我为什么开始使用QMAIL:我对其他的邮件发送系统的诸多安全漏洞感到非常不安。)
可靠:QMAIL采用“straight-paper-path”的设计“哲理”, 保证了一个信息一旦被系统接收,就永不丢失。QMAIL也支持MAILDIR功能,一个全新的、超稳定的用户邮箱格式。MAILDIRS,不像MBOX文件和MH文件夹在接收邮件时,如果系统出错会导致接收中断。更好的是,用户不仅可以安全的在NFS(网络文件系统)上读取他的邮件,而且与此同时,任何其他NFS的客户端也可以向他发送邮件。
高效:在一个BSD/OS的PENTIUM机上,QMIAL每天可以轻易地支持200000的本地信息----分开处理邮箱中信息的发送与接收!虽然DNS(域名服务器)和SMTP的远程发送原本就有速度慢的局限性,qmail可以在默认状态下同时发送20封邮件,所以相比下它能风驰电掣地快速通过邮件列表。(这就是我为什么使用QMAIL,我必须建立庞大的邮件列表。)
简洁:QMAIL比其他任何互联网的MTA占用的空间都要小得多。这是因为:(1) 其他的MTA系统采用单独解析、匿名和邮件列表的机制。而QMAIL采用一个简化了的解析机制,它允许用户处理他们自己的邮件列表。(2) 其他的MTA是这样的发送模式:或者快速+不安全,或者缓慢+队列。而QMAIL,在队列中一旦有新消息的出现,就立即发送,所以QMAIL的发送模式只能是:快速+队列。(3) 其他MTA系统实际上包含了一个特别的inetd的版本,它能减少机器的负荷。而QMAIL的设计根本上减少了机器的负荷,因此QMAIL发送系统能在您的机器上安全运行。
替代SENDMAIL的发送邮件:QMAIL支持主机和用户的匿名、完全隐藏主机、虚拟域名、无效客户、拥有者列表的重写、终继控制、可恢复的双重记录、严格的RFC 822地址列表、交叉主机邮件列表的循环侦测、每个接受端的检查点、出故障主机的备份恢复、独立进行信息的重试调度、等等等等。简而言之,它在现代MTA中以快速的特点一枝独秀。QMAIL也包括可以透明地面对众多用户的发件箱。


2.我的系统情况
SuSE Linux Distribution 5.1 with 2.0.33 kernal.用端对端协议(ppp)连接到互联网服务提供商(ISP)。


3.QMAIL的安装
正确依照安装说明的步骤。
注意:请花时间完整地阅读安装说明文件。在以上安装文件中有表示安装步骤的数字。
2.-我必须手动设置组和用户作为每个INSTALL.ids
7.-./qmail-makectl不能在我的系统上运行。我在/var/qmail/control/me中手动地加入了我的域名(mickey.n.eunet.de)
23.-确定qmail-smtpd在inetd-conf文件中的正确拼写。(我把qmail-smtpd拼写成qmail-smptd,导致了花了我两天时间去找:
( ) smtp stream tcp nowait qmaild/var/qmail/bin/tcp-env tcp-env/var/qmail/bin/qmail-smtpd

3.1 Maildir2smtp
Dan Bernstein已经提供了通过拨号向ISP发送一系列邮件的程序包。这个程序包用来作为从它的站点发送的系列邮件。
这个程序包安装在此人(感谢Rupert Mazzucco([email protected]))网页详细阐述,maildir2smtp - 通过SMTP发送一个maildir。maildir2smtp是设计用来在一个SLIP或者PPP链路上传递报文的。为了在无连接的终端建立maildir2smtp,用匿名创建一个新的maildir:
# maildirmake ~alias/pppdir
# chown -R alias ~alias/pppdir

:alias-ppp
加入
control/virtualdomains

./pppdir/
加入
~alias/.qmail-ppp-default
不要忘了在pppdir/中附加的删减。然后,在PPP开始文本中,作如下操作:
maildir2smtp ~alias/pppdir alias-ppp- $IP ``hostname``
把$IP替换为远端IP地址。
注意:请完整地阅读正确操作的说明书。
Maildir2smtp需要你邮件服务器的IP地址。如果你没有这个IP地址,你可以检测YourMail.host.country来返回你邮件服务器的IP地址。
这个命令包含在你的登陆文本中,在你登陆到你的互联网服务提供商ISP后,刷新所有队列邮件。


4.MH的安装
除了这种设置外,我也把/mh-6.8.4/mts/sendmail/smail.c替换为Dan Bernsteins mh-qmail-smail.c。
以下是我的mh-6.8.4/conf/MH设置。
______________________________________________________________________

bin /usr/bin/mh
etc /usr/lib/mh
#mail
#mandir /usr/man
#manuals standard
chown /bin/chown
#cp cp
#ln ln
#remove mv -f
cc gcc
ccoptions -traditional -O2 -m486 -D_NFILE=''getdtablesize()''
-DSIGEMT=SIGUSR1
curses -lncurses
#ldoptions -s
#ldoptlibs
lex flex
#oldload off
#ranlib on
mts sendmail
#mf off
#bboards off
#bbdelivery off
#bbhome /usr/spool/bboards
pop on
popdir /usr/lib/mh
sharedlib sys5
slflags -fPIC
slibdir /usr/lib
mailgroup mail
signal void
sprintf int
#editor prompter
#debug off
#regtest off
options ATHENA
options BIND
options DPOP
options DUMB
options FCNTL
options MHE
options MHRC
options MIME
options MORE=''"/usr/bin/less"''
options OVERHEAD
options POP2
options POPSERVICE=''"pop3"''
options RENAME
options RPATHS
options RPOP
options SOCKETS
options SVR4
options SYS5
options SYS5DIR
options TERMINFO
options UNISTD
options VSPRINTF
______________________________________________________________________

注意:
我只编译了在comp.mail.mh中的````mts sendmail'''',其中/smtp 会引起一些问题。Dominic Mitchell([email protected])在comp.mail.mh (13 June 1997)中写道:“用这个选择,MH仍然可以通过一个管道,而不是网络用SMTP通话。你确实需要在你的/.mh_profile加入一行:
postproc: /usr/local/nmh/lib/spost
或者无论以什么方式存在于你的系统上,它都将以传统方式把报文直接传送到sendmail,你确实在使用QMAIL,因此sendmail将成为QMAIL的包文本,这就可以了。”

4.1 mtstailor
因为QMAIL发送又见到默认目录(~/Mailbox)。我把下列设置加入到我的mtstailor。
localname: mickey
localdomain: n.eunet.de
mmdfldir:
mmdflfil: Mailbox
uucpldir:
uucplfil:
mmdelim1: 01010101

mmdelim2: 01010101

mmailid: 0
umincproc:
lockldir:
sendmail: /usr/lib/sendmail
注意:sendmail: /usr/lib/sendmail是连接到在/var/qmail/bin中的QMAIL SENDMAIL包的路径。
MH不像音标符号(~/),而是使用/home或者根据文本默认的$HOME置空格。
我最近在办公室里的一台连接到以太网电脑上安装了MH和QMAIL。我在mtstailor里加入了以下一行:
servers: mailserver.company.country

4.2 mh_profile
以下是我的.mh_profile设置
Path: Mail
draft-folder: drafts
unseen-sequence: unseen
AliasFile: /home/rdn/.mh_aliases
send: -msgid
comp: -form /home/rdn/.mymh-components
MailDrop: /home/rdn/Mailbox
注意:我加入“收件箱”一行,为了保证邮件的接收。