31.5.修改邮件传输代理
自 FreeBSD 版本 14.0 以降,dma(8) 是默认的 MTA,而在 14.0 之前,默认的 MTA 是 sendmail(8)。然而,系统管理员可以更改系统的 MTA。FreeBSD Ports 的 mail
类别提供了许多替代的 MTA。
警告
如果默认的外发邮件服务被禁用,重要的是需要用替代的邮件传递系统进行替换。否则,像 periodic(8) 这样的系统功能将无法通过电子邮件发送结果。系统的许多部分都依赖于一个功能正常的 MTA。如果应用程序在禁用后继续使用默认的二进制文件尝试发送邮件,邮件可能会进入一个不活跃的队列并永远无法发送。
31.5.1. 使用其他 MTA 替换 Sendmail
要完全禁用 sendmail(8),执行以下命令:
# sysrc sendmail_enable="NO"
# sysrc sendmail_submit_enable="NO"
# sysrc sendmail_outbound_enable="NO"
# sysrc sendmail_msp_queue_enable="NO"
如果只想禁用 sendmail(8) 的接收邮件服务,执行以下命令:
# sysrc sendmail_enable="NO"
然后停止 sendmail(8) 服务:
# service sendmail onestop
由于 sendmail(8) 广泛存在,某些软件假定它已经安装并配置好,因此还需要进行一些额外的配置。检查 /etc/periodic.conf 并确保以下值设置为 NO
。如果此文件不存在,可以创建它并添加这些条目:
daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"
接下来的步骤是安装另一个 MTA,本例中将使用 dma(8)。如上所述,FreeBSD 从版本 14.0 开始将 dma(8) 作为默认 MTA。因此,如果你使用的是早期版本,仅需要从 Port 安装它。
执行以下命令安装:
# pkg install dma
按照 配置 DragonFly 邮件代理 (DMA) 中的配置说明进行配置。
然后,将 /etc/mail/mailer.conf 文件中的所有条目更改为 dma(8):
# 执行 "真实" 的 sendmail 程序,位于 /usr/libexec/sendmail/sendmail
#
# 如果安装了 dma(8),可以在 /usr/share/examples/dma 中找到一个使用 dma(8) 的示例 mailer.conf
#
sendmail /usr/local/libexec/dma
mailq /usr/local/libexec/dma
newaliases /usr/local/libexec/dma
注意
当使用基本系统中包含的 dma(8) 版本时,路径将更改为 /usr/libexec/dma。
为了确保队列中的任何邮件在启动时或关机前被清空,执行以下命令:
# sysrc dma_flushq_enable="YES"
配置完成后,建议重启系统。重启可以确保系统正确配置,并在启动时自动启动新的 MTA。
31.5.2. 使用其他 MTA 替换 DragonFly 邮件代理 (DMA)
如上所述,从 FreeBSD 版本 14.0 开始,默认的 MTA 是 DMA。本例中将使用 mail/postfix 作为替代 MTA。
在安装 mail/postfix 之前,需要进行一些额外的配置。检查 /etc/periodic.conf 并确保以下值设置为 NO
。如果此文件不存在,可以创建它并添加这些条目:
daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"
然后安装 mail/postfix:
# pkg install postfix
要在系统启动时启用 mail/postfix,执行以下命令:
# sysrc postfix_enable="YES"
技巧
安装应用程序后阅读安装消息是一个好习惯,它提供了关于设置等有用的信息。
如果 postfix 尚未在 /usr/local/etc/mail/mailer.conf 中启用,执行以下命令:
mv /usr/local/etc/mail/mailer.conf /usr/local/etc/mail/mailer.conf.old
install -d /usr/local/etc/mail
install -m 0644 /usr/local/share/postfix/mailer.conf.postfix /usr/local/etc/mail/mailer.conf
在使用 SASL 时,确保 postfix 可以读取 sasldb 文件。这可以通过将 postfix 添加到邮件组,并使 /usr/local/etc/sasldb* 文件可供邮件组读取来实现(这应该是新安装的默认设置)。
配置完成后,建议重启系统。重启可以确保系统正确配置,并在启动时自动启动新的 MTA。
最后更新于