本章为您简要介绍 Exim 的设置以及其功能的概述。虽然 Exim 在行为上很大程度上与 sendmail 兼容,但其配置文件完全不同。
主配置文件通常称为/etc/exim.conf或/etc/exim/config在大多数 Linux 发行版中,或/usr/lib/exim/config在较旧的配置中。您可以通过运行以下命令找出配置文件的位置
$ exim -bP configure_file |
您可能需要编辑配置文件以反映特定于您站点的值。在大多数常见配置中,没有太多需要更改的地方,并且工作配置很少需要修改。
默认情况下,Exim 会立即处理和传递所有传入邮件。如果您有相对较高的流量,您可以让 Exim 将所有消息收集到所谓的 queue 中,并仅定期处理它们。
当在 TCP/IP 网络中处理邮件时,Exim 经常在守护进程模式下运行:在系统启动时,它从以下位置调用/etc/init.d/exim[1] 并将自身置于后台,在那里它等待 SMTP 端口(通常是端口 25)上的传入 TCP 连接。当您期望有大量流量时,这很有益,因为 Exim 不必为每个传入连接启动。或者,inetd 可以管理 SMTP 端口,并在该端口上有连接时生成 Exim。当您的内存有限且邮件流量较小时,此配置可能很有用。
Exim 有一套复杂的命令行选项,包括许多与 sendmail 的选项相匹配的选项。您可以调用传统的命令(如 rmail 或 rsmtp)来实现最常见的操作类型,而不是尝试将完全正确的选项组合在一起以满足您的需求。这些是 Exim 的符号链接(或者如果它们不是,您可以轻松地将它们链接到 Exim)。当您运行其中一个命令时,Exim 会检查您用于调用它的名称并自行设置正确的选项。
在任何情况下,您都应该有两个指向 Exim 的链接:/usr/bin/rmail 和 /usr/sbin/sendmail。[2] 当您使用用户代理(如 elm)编写和发送邮件消息时,该消息将通过管道传递到 sendmail 或 rmail 以进行传递,这就是为什么 /usr/sbin/sendmail 和 /usr/bin/rmail 都应该指向 Exim 的原因。消息的收件人列表通过命令行传递给 Exim。[3] 通过 UUCP 传入的邮件也会发生同样的情况。您可以通过在 shell 提示符下键入以下内容来设置指向 Exim 的所需路径名
$ ln -s /usr/sbin/exim /usr/bin/rmail $ ln -s /usr/sbin/exim /usr/sbin/sendmail |
如果您想进一步深入了解配置 Exim 的详细信息,您应该查阅完整的 Exim 规范。如果您的首选 Linux 发行版中未包含此规范,您可以从 Exim 的源代码中获取它,或者从 Exim 的网站 http://www.exim.org 在线阅读它。
[1] | 其他可能的位置是/etc/rc.d/init.d和rc.inet2。后者在使用 BSD 风格结构来管理系统管理文件的系统中很常见,位于/etc目录中。 |
[2] | 根据 Linux 文件系统标准,这是 sendmail 的新标准位置。另一个常见的位置是/usr/lib/sendmail,这很可能被未专门为 Linux 配置的邮件程序使用。您可以将这两个文件名定义为指向 Exim 的符号链接,以便调用 sendmail 的程序和脚本将改为调用 Exim 来执行相同的操作。 |
[3] | 但是,某些用户代理使用 SMTP 协议将消息传递给传输代理,并使用–bs选项调用它。 |