基于 Qmail 的 Linux 企业邮件系统的实现

12/3/2006来源:Qmail人气:6230

前言

您的公司是否还在使用 m$ 的 Exchange 邮件系统 ?
您的邮件系统是否总是处于重负荷而狼狈不堪的状态 ?
您是不是老担忧病毒会通过邮件途径传播至您的内部网络 ?
您的同事经常抱怨邮件收发其慢无比,或者因为邮件无缘无故地收不到而满腹牢骚 ?
或者您还在使用功能陈旧,邮箱大小受限制,不是您自己掌管和可以自由支配的邮件系统 ?
您是不是发觉您的优秀的网络工程师即使努力勤奋工作却依旧不能使邮件系统安全和高效地运转?

本文为您提供一个在 GNU/linux 平台上建立 Qmail 邮件系统的最基本的实现,以及介绍由此衍生出来的,以 Qmail 为基础的、全部是开放源代码软件所完美构建的, 稳定高效安全
的企业邮件系统的一揽子解决方案。其中,您将领略 Qmail 的功能强大而且同时容易使用的特色;您还会了解到 Qmail 邮件系统已经拥有了极为庞大的用户数量的这个事实,以及理解为什么这个邮件系统如此广泛地被大企业使用的原因所在。最后,按照本文的方法,您将以极小的代价得到一个基于 GUN/Linux 平台的、开放源代码的、扩展性极高、广泛支持各种特征的邮件系统平台,获得邮件系统高效地、稳定地、安全地运转。
您从此将高枕无忧,轻松、愉快地度过您的每一个假期和节日。


第一节、 企业邮件系统的现状

  • 目前使用的最为广泛的的邮件系统还应该是 Sendmail 。
    Sendmail 古老、优秀而且传统;许多 GNU/Linux 发行套件和商业的 UNIX 都默认使用 Sendmail 作为邮件服务器;您不需要花费多少力气,就可以迅速地使自己的邮件系统运行起来。这些都使得 Sendmail 在 Internet 上的邮件系统中占据了大半山河。
    由于 Sendmail 邮件系统的用户就是系统本身的帐户,一般用于用户数量较小的环境,而且管理者需要掌握一定的 Linux/UNIX 基础知识。
    解释
    • MTA:Mail Transport Agent,邮件传输代理
      例如 Sendmail、Qmail、Postfix、Exim 等。
    • MDA:Mail Dilivery Agent,邮件投递代理
      例如: PRocmail、Maildrop 等。
    • MUA:Mail User Agent,邮件用户代理
      例如:Emacs、Mutt、Pine、Mozilla Mail,以及大家广为使用的、极为熟悉的 Microsoft OutlookFoxmail 等。

    实际上, Sendmail 基本上只是一个 MTA 。但 MTA 是邮件系统的基础,人们依据习惯,一般还是将以 Sendmail 为 MTA 的邮件系统,统称为 Sendmail 邮件系统。这个邮件系统还包含 IMAP(UW)、Procmail、Maildrop 等一系列软件。
    下面所说的 Qmail 也一样。
  • 受条件所困,小型企业的邮件服务器目前一般是 m$ 的 Windows 平台的 Exchange 。其直观的图形界面、和域控制器的结合、带有群件功能,在要求不高的一般场合、特别只是内部应用的场合还是可以凑合着使用。
  • Lotus Domino/Notes 这个 IBM 的群件软件带有邮件服务器功能,一般运行于 Windows 平台,广泛使用在许多企业、政府、金融这些较高要求的行业,应用层次深;但如果纯粹是做邮件服务器,有点大材小用的感觉。其维护起来,需要专业的计算机人员。
    IBM Lotus Domino/Notes、Microsoft Exchange 和 Novell Groupwise 等群件系统,除了提供收发电子邮件的基本功能之外,还表现出较强的协同工作能力,同时也具有良好的安全性能。这类系统支持协同工作和二次开发,留有开发接口,这在一定程度上降低了邮件系统的安全性能。开发接口的开放性虽然方便用户开发相关应用,但是也为恶意攻击者攻击系统提供了后门。由于这类具有协同工作能力的邮件系统能够支持多种非邮件功能,这也会或多或少地降低了邮件系统的安全功能。 用户在使用这类产品时,需要在安全性能与协同功能之间作出平衡。
  • Qmail 跟这些相比则是功能齐全、安装复杂。其显著特征在于:
    1. 邮件用户可以保存在数据库中。
    2. 良好地支持邮件虚拟域。
    3. 支持 smtp 验证、邮箱空间大小限制。
    4. 支持自动转发、自动回复,支持邮件列表。
    5. 支持众多的防病毒邮件和垃圾邮件的解决方案。
    虽然 Qmail 安装复杂,但是安装、配置成功后,用户管理起来却是想象不到的简单: 所有的操作通过浏览器即可
    最重要的一点:跟 Sendmail 一样,都是开放源代码的,您可以根据自己的特殊需求修改源程序来满足自己的需要。此外,Qmail 充分吸收了前辈 Sendmail 的经验和教训,针对 Sendmail 暴露出的缺点一一根本性地加了改进,从而牢牢地确定了自己在大容量、高负荷邮件系统中的决定性地位。
    您或许知道,广为使用的雅虎电邮、hotmail.com 就是使用基于 Qmail 的邮件系统。

第二节、 Qmail 如何工作

  • Qmail 是什么?
    Qmail 包是在 UNIX 系统上的一个邮件程序。 Qmail 程序由 Dan Bernstein 开发,为标准的 UNIX 服务器提供邮件传输代理(MTA)的功能的,用于替代 sendmail 。
  • Qmail 和相关的服务
    Qmail 提供了MTA 功能,但是客户要能看到自己的信件,还需要其他协议和软件。两种常见的远程用户取回他们消息的机制是邮局协议(Post Office Protocol, pop3)和互交邮件访问协议(Interactive Mail access Protocol, imap)。 pop3 可以采用 Vpopmail 或者 Courier-imap , imap 可以采用 Courier-imap ,它们都和 Qmail 搭配极好。
    综述, Qmail 系统包括:可执行程序、配置文件、Qmail 工具和环境变量。这些彼此互相影响,共同提供邮件服务。
  • Qmail 投递邮件进程流程