先前已经提到,FreeBSD 中的 sendmail 已经安装了您的 MTA (邮件传输代理程序)。因此它负责着您的收发邮件的工作。
然而,基于不同的理由,一些系统管理员想要改变他们系统的 MTA。这些理由从简单的想要尝试另一个 MTA,到需要一个特殊的特性或者 package 依赖某个邮寄程序等等。幸运的是,不管是什么理由,FreeBSD 都能容易的改变它。
对于可用的 MTA 您有很多的选择。一个好的出发点是 FreeBSD Ports Collection,在那里您能找到很多。 当然您可以从任何位置不受任何限制的使用 MTA,只要您能让它运行在 FreeBSD 下。
开始安装您的新 MTA。一旦它被安装, 它可以让您有机会判定它是否能满足您的需要, 并且在它接管 sendmail 之前让您有机会配置您的新软件。 当完成这些之后,您应该确信安装的新软件不会尝试更改系统的二进制文件例如 /usr/bin/sendmail。 除此以外, 您的新邮件软件启用之前要已经配置好它。
具体配置请参考您所选择的 MTA 软件的配置文档或其它相关资料。
警告: 如果您打算禁用 sendmail 的邮件发出服务, 保持系统中有一个替代它的、 可用的邮件递送系统就非常重要。 如果您不这样做的话, 类似 periodic(8) 这样的系统功能就无法如预期的那样, 通过邮件来传送其执行结果。 您系统中的许多部分可能都假定有可用的 sendmail-兼容 系统。 如果这些应用程序继续使用 sendmail 的执行文件来发送邮件, 而您又禁用了它, 则邮件将进入 sendmail 的非活跃 (inactive) 队列, 而永远不会被送达。
要彻底禁用包括邮件送出服务在内的所有 sendmail 功能, 必须将
sendmail_enable="NO" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO"
写入 /etc/rc.conf。
如果只是想要停止 sendmail 的接收邮件服务, 您应该在 /etc/rc.conf 文件中设置
sendmail_enable="NO"
更多的有关 sendmail 可用的启动选项,参看 rc.sendmail(8) 联机手册.
可以向 /etc/rc.conf 中加入配置项使新的 MTA 在系统启动时运行, 下面是一个 postfix 的例子:
# echo 'postfix_enable=“YES”' >> /etc/rc.conf
这样 MTA 就能在系统启动是自动运行了。
因为 sendmail 程序是一个在 UNIX® 系统下普遍存在的一个标准的软件,一些软件就假定它已经被安装并且配置好。 基于这个原因,许多其它的 MTA 提供者都提供了兼容 sendmail 的命令行界面来执行。 这使它们像“混入”sendmail 一样变的很容易掌握。
因此,如果您使用其它的邮寄程序, 您必须确定这个软件是去尝试运行标准的 sendmail 二进制,就象 /usr/bin/sendmail,还是运行您自己选择的替换邮寄程序。 幸运的是,FreeBSD 提供了一个系统调用 mailwrapper(8),它能为您做这件工作。
当 sendmail 安装后被运行,您可以在 /etc/mail/mailer.conf 中找到如下行:
sendmail /usr/libexec/sendmail/sendmail send-mail /usr/libexec/sendmail/sendmail mailq /usr/libexec/sendmail/sendmail newaliases /usr/libexec/sendmail/sendmail hoststat /usr/libexec/sendmail/sendmail purgestat /usr/libexec/sendmail/sendmail
这个的意思就是当这些公共命令 (例如 sendmail 它本身) 运行时, 系统实际上调用了一个 sendmail 指定的 mailwrapper 的副本,它检查 mailer.conf 并且运行 /usr/libexec/sendmail/sendmail 做为替代。当默认的 sendmail 功能被调用, 系统将很容易的改变实际上运行的二进制文件。
因此如果您想要 /usr/local/supermailer/bin/sendmail-compat 替换 sendmail 被运行,您应该改变 /etc/mail/mailer.conf 文件为:
sendmail /usr/local/supermailer/bin/sendmail-compat send-mail /usr/local/supermailer/bin/sendmail-compat mailq /usr/local/supermailer/bin/mailq-compat newaliases /usr/local/supermailer/bin/newaliases-compat hoststat /usr/local/supermailer/bin/hoststat-compat purgestat /usr/local/supermailer/bin/purgestat-compat
一旦做完您想要配置的每件事,您应该杀掉 sendmail 进程并且启动属于您的新软件的进程, 或者简单的重启。 重启也将给您提供了确认您的系统已经进行了正确的配置的机会。 在引导的时候自动的运行您新的 MTA。
本文档和其它文档可从这里下载:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读文档,如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.