在Linux下有许多软件包可以实现标准的邮件服务。UNIX/Linux的电子邮件系统模型基本可分为邮件传递代理MTA,邮件存储和获取代理MSA,以及邮件客户代理MUA三大模块。虽然也有一些特殊的邮件应用程序无法确切归入上述分类。下面我们就Linux邮件服务做一概述。
1、邮件传递代理-MTA
在Linux下的邮件传递代理包括sendmail,该系统几乎在任何UNIX平台上都有相应的版本;还有D.J. Bernstein的qmail以及Wietse Venema的Postfix系统。它们负责接收并转递邮件。这听起来很简单,实际上设置可能相当复杂。在邮件策略管理时需要设置一系列的路由和伪装选项,而许多功能是由语言编程实现的,用以过滤或者修改中继消息的头信息。此外邮件路由和寻址邮件存储信箱的过程包含了复杂的与各种目录服务交互操作,这些目录服务可能包括DNS,密码文件,NIS, LDAP别名/数据库管理文件,以及各种的通用数据库系统。
如今的MTA还要实现反垃圾邮件功能,控制邮件头的to和from地址格式,达到允许或者限制特定域名或者地址范围目的,以上主要是通过修改存取控制表和规则实现。这一过程通常包括查询数据表或者目录服务,例如Paul Vixie的实时黑洞列表程序RBL,邮件滥用预防系统MAPS,以及同类的Dorkslayer/ORBS系统。MTA一直在不断增强之中,以实现加强的策略控制以及反病毒和反蠕虫等功能。
在大多数情况下,安装和设置MTA系统比较容易,不过强大的功能的实现是以高度复杂性为代价的。如果你所在的机构选择定制的MTA来满足特定的路由,体系,安全性和反垃圾邮件等要求,就需要更加复杂的设置选项,配置包括设计并处理MTA和各种子系统如LDAP、DNS服务器之间的复杂关系。
2、邮件存储和获取代理MSA
一旦安装并设置完成了MTA,通常还需要对MSA系统进行同样的配置过程。如今大多数机构并不直接将邮件传送到桌面客户系统,而是将邮件存储到服务器,让用户通过POP或者IMAP来读取各自的邮件。
邮件存储的管理有许多种协议,但如今最常用的是POP3和IMAP4。对于MTA来说,由一些程序,或者称之为Daemon来实现相应协议的服务。大多数MSA可以与通用的MTA交互,此外这些系统还包含加锁或者其他安全机制,使得多个MSA可以并行工作而不发生冲突。
这意味着一些用户可以通过POP协议获取邮件而同时其余一些用户可以使用IMAP协议,而另外一些用户可以登录系统,使用本地MUA例如pine,mutt或elm处理邮件。单独用户也可以从一种存取协议切换到另一种,而并不需要系统管理员的干预。聪明的用户甚至可以越过通常的MSA/MUA服务,而使用通常的UNIX命令如cp、mv和ftp或者远程同步rsync来随意处置他们的邮件。对普通用户来说这有些艰涩,但该方法有时可以用来方便地修复崩溃了的邮箱系统。
在一个已经安装了Linux系统机器上设置POP服务相当容易,甚至不需要什么操作。通常POP Daemon在最初的Linux操作系统安装时已经设立。而如果POP daemon被禁止,可以在/etc/inetd.conf文件中去掉相应行的注释,并重新启动Daemon服务即可。