⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000013.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;ruster&nbsp;(尘埃*星辰*领悟),&nbsp;信区:&nbsp;Linux&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;第七章&nbsp;电子邮件(下)&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Dec&nbsp;21&nbsp;13:46:07&nbsp;2000)&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>7.4&nbsp;qmail&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;sendmail的功能是足够强大的,然而它的配置和管理也是十分复杂的。有另一个也很&nbsp;<BR>常用的邮件服务程序称为qmail。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;需要注意的是,许多人认为qmail要比sendmail简单一些。就笔者个人的感觉,不能同&nbsp;<BR>意这种说法。但是,qmail在配置一些稀奇古怪的功能方面确实比sendmail要稍微容易一&nbsp;<BR>些。另外qmail与sendmail不同之处在于,缺省的时候qmail将在用户的宿主目录中存储&nbsp;<BR>邮件,而不是像sendmail那样不分青红皂白地放在/var/spool/mail下面,并且qmail不&nbsp;<BR>需要使用文件锁定,所以可以把用户邮件放在NFS服务器上,这样,可以使用多台服务器&nbsp;<BR>来提供服务。对于大型邮件系统这是很重要的。(在sendmail也可以这样做,但必须非&nbsp;<BR>常小心以免造成邮件丢失)。但是这个功能虽然不错,却又产生了一些十分讨厌的后果&nbsp;<BR>。对于大型的ISP,qmail也很重要,它可以简化虚拟域的设置。我们将试图介绍如何用&nbsp;<BR>qmail构造一个邮件服务器。当然,这里的介绍不可能像介绍sendmail那样细致,如果要&nbsp;<BR>使用一些比较高级的功能,你也许必须研究qmail的文档。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;7.4.1&nbsp;下载和编译附加文件&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;通常我们很少会向读者提出“去某个地方下载xxx软件”,因为这些软件一般从某些大&nbsp;<BR>的ftp站台上要比从发布者那里下载容易的多。不过,qmail的安装需要一大堆稀奇古怪&nbsp;<BR>的东西,而且还都不大。因此,我们这里建议你下载全部的qmail附加工具。为了我们这&nbsp;<BR>里讲的内容,你需要下载下面这些软件:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;①qmail&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;这个是主程序,可以到<A HREF="http://koobera.math.uic.edu/www/qmail.html去下载,那里">http://koobera.math.uic.edu/www/qmail.html去下载,那里</A>&nbsp;<BR>还有一个qmail分析程序,不过说实话从Linux发行光盘上或者专门的ftp站得到它会容易&nbsp;<BR>一些。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;②ucspi-tcp&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;可以到<A HREF="ftp://koobera.math.uic.edu/www/ucspi-tcp.html">ftp://koobera.math.uic.edu/www/ucspi-tcp.html</A>&nbsp;去下载,对我们来说主要&nbsp;<BR>是利用它的TCP包装功能。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;③checkpassword&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;一个用来校验pop3用户口令的工具,可以到<A HREF="http://pobox.com/~djb/checkpwd.html去">http://pobox.com/~djb/checkpwd.html去</A>&nbsp;<BR>下载。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;另外,如果要强化功能,在qmail的主页上还可以看到一些相关的工具,你可以自己去&nbsp;<BR>下载研究一下。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;接下来,需要编译uscpi-tcp和chheckpassword,其中uscpi-tcp的编译需要用一个参&nbsp;<BR>数,例如,展开的uscpi-tcp源代码位于ucspi-tcp-0.84:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$cd&nbsp;ucspi-tcp-0.84&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$make&nbsp;setup&nbsp;check&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;将生成tcpserver、tcprules程序和一个安装程序,执行安装程序&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$./install&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;将会完成安装,缺省的安装目录是/usr/local/bin。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;编译checkpassword程序则比较简单,只要进入源代码的目录,执行一下make程序,然&nbsp;<BR>后把文件拷贝到合适的地方就行了,我们假设tcpserver和tcprules安装在/usr/local/&nbsp;<BR>bin下,checkpassword安装在/bin下。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;7.4.2&nbsp;安装qmail&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;安装qmail要比安装sendmail繁琐,我们把它分成几个段落来解释:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;建立用户和编译&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;安装qmail本身不算复杂,但是需要建立多个用户,我们假设使用的是qmail&nbsp;1.03,它&nbsp;<BR>要求建立6个用户和两个用户组,这可以使用下面的命令:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$&nbsp;groupadd&nbsp;nofiles&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$&nbsp;useradd&nbsp;-g&nbsp;nofiles&nbsp;-d&nbsp;/var/qmail/alias&nbsp;-s&nbsp;/bin/false&nbsp;alias&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$&nbsp;useradd&nbsp;-g&nbsp;nofiles&nbsp;-d&nbsp;/var/qmail&nbsp;-s&nbsp;/bin/false&nbsp;qmaild&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$&nbsp;useradd&nbsp;-g&nbsp;nofiles&nbsp;-d&nbsp;/var/qmail&nbsp;-s&nbsp;/bin/false&nbsp;qmaill&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$&nbsp;useradd&nbsp;-g&nbsp;nofiles&nbsp;-d&nbsp;/var/qmail&nbsp;-s&nbsp;/bin/false&nbsp;qmailp&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$&nbsp;groupadd&nbsp;qmail&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$&nbsp;useradd&nbsp;-g&nbsp;qmail&nbsp;-d&nbsp;/var/qmail&nbsp;-s&nbsp;/bin/false&nbsp;qmailq&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$&nbsp;useradd&nbsp;-g&nbsp;qmail&nbsp;-d&nbsp;/var/qmail&nbsp;-s&nbsp;/bin/false&nbsp;qmailr&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$&nbsp;useradd&nbsp;-g&nbsp;qmail&nbsp;-d&nbsp;/var/qmail&nbsp;-s&nbsp;/bin/false&nbsp;qmails&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;然后可以编译安装qmail,假设qmail源代码在qmail-1.03下:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$cd&nbsp;qmail-1.03&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$make&nbsp;setup&nbsp;check&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;这个动作将编译qmail源代码并且建立一个/avr/qmail目录,接下来,你需要建立qma&nbsp;<BR>il运行所需要的基本配置:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$./config&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;如果你的DNS查询已经正常了,本机器的域名也正确,这就是你需要的命令,否则,参&nbsp;<BR>考qmail的安装文档。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;下一步你需要创建用户别名,要注意qmail的用法有些怪异,它会忽略任何发往root的&nbsp;<BR>邮件,因此除非你建立了一个root用户的邮件别名,否则你无法接受到那些发送给root&nbsp;<BR>的邮件。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;邮件别名的用法是这样:对于任何一个用户,定义其别名的办法是在/var/qmail/ali&nbsp;<BR>as下面建立一个文件,文件名是&quot;.qmail-&quot;加上用户名。例如,想建立root用户的别名,&nbsp;<BR>让发到root的邮件转移到supervisor用户,你需要建立的是/var/qmail/.qmail-root,&nbsp;<BR>属性设置为644,而内容就是简单地写上一行supervisor就可以了。一般你需要建立root,&nbsp;<BR>和postmaster,mailer-daemon的别名&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;替换sendmail&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;有些程序会直接在命令行上使用sendmail来发送电子邮件,最典型的是UNIX的mail程&nbsp;<BR>序。如果你使用的是qmail,显然你需要替换掉原来的sendmail。qmail提供了一个用来&nbsp;<BR>从命令行调用的程序,你可以用它替换掉原来的sendmail:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;mv&nbsp;/usr/sbin/sendmail&nbsp;/usr/sbin/srndmail.backup&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;mv&nbsp;/usr/lib/sendmail&nbsp;/usr/lib/sendmail.backup&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;ln&nbsp;–s&nbsp;/var/qmail/bin/sendmail&nbsp;/usr/sbin/sendmail&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;ln&nbsp;–s&nbsp;/var/qmail/bin/sendmail&nbsp;/usr/lib/sendmail&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;使用/usr/lib是因为有些系统将sendmail放在/usr/lib目录下面。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;启动本地投递&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;接下来的任务是启动局部递送,这个功能用来在本地用户之间转发邮件,以及接受由&nbsp;<BR>smtp服务器传送来的信息。它的工作其实就把信件存储到用户宿主目录下的Mailbox文件&nbsp;<BR>里面。通常这是通过一个名叫/var/qmail/boot/home的脚本来完成的,不过一般情况下&nbsp;<BR>我们把它拷贝出来:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$&nbsp;cp&nbsp;/var/qmail/boot/home&nbsp;/var/qmail/rc&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;然后执行拷贝版本,这个脚本是csh的,可以直接在csh或者bash下执行:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$&nbsp;rc&nbsp;&amp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;然后你就可以实验一下在本机的用户之间发送邮件了,注意接受到的邮件都存放在用&nbsp;<BR>户目录下的Mailbox文件里面。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;为了pop3服务的需要,qmail一般在用户的目录下面建立一个Maildir目录专门存放邮&nbsp;<BR>件,例如,要给用户wanghy建立邮件目录,首先以wanghy用户名登录系统,然后使用命&nbsp;<BR>令:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$&nbsp;/var/qmail/bin/maildirmake&nbsp;$HOME/Maildir&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;$&nbsp;echo&nbsp;./Maildir/&nbsp;&gt;&nbsp;~/.qmail&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;每个邮件用户都必须执行一次,这个过程很烦,而且实际操作也就是建立一个目录和&nbsp;<BR>它的子目录以及一个说明文件.qmail。所以更好的办法是把设置好的目录和.qmail都拷&nbsp;<BR>贝到/etc/skel下面,每当adduser的时候会自动将它们拷贝到新用户的目录下,就可以&nbsp;<BR>省去这样的操作了。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;7.4.3&nbsp;启动smtp投递代理&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;qmail的smtp投递代理是/var/qmail/bin/qmail-smtpd。这个程序通常是在inetd里面&nbsp;<BR>启动的,问题在于出于某种原因,qmail缺省的情况下不使用投递代理功能,而且它的投&nbsp;<BR>递代理是基于用户名字的。简单地说,如果一封信的回信地址不是本机器,或者邮件来&nbsp;<BR>自客户机器,那么它将直接拒绝投递并产生一个错误。解决的办法是在启动qmail-smtp&nbsp;<BR>d的时候提供一个环境变量RELAYCLIENT,这样它将不再作邮件地址检查。问题是从inet&nbsp;<BR>d启动这个功能是困难的,我们一般使用前面提到的tcpserver程序。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;tcpserver是一个类似inetd的服务程序,但是它可以对连接地址进行检查,并且设定&nbsp;<BR>服务器进程启动时的参数。详细的介绍我们不作了,在这里,如果要启动投递代理,需&nbsp;<BR>要首先生成TCP规则,首先要建立一个/etc/tcp.smtp文件。例如你想对192.168.12.*的&nbsp;<BR>用户启动投递代理的话,这个文件要包括这样的行:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;192.168.12.:allow,RELAYCLIENT=&quot;&quot;&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;注意后面的点号,例如127.代表127.*.*.*,192.168.代表192.168.*.*。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;然后执行:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;tcprules&nbsp;/etc/tcp.smtp.cdb&nbsp;/etc/tcp.smtp.tmp&nbsp;&lt;&nbsp;/etc/tcp.smtp&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;tcprules程序将把tcp.smtp转换成tcpserver使用的数据库形式。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -