29.6. 高级主题

本节涵盖了更多的内容,如邮件配置和为整个域设置邮件。

29.6.1. 基本配置

开箱即用,只要 /etc/resolv.conf 配置好了,或者网络可以访问配置好的 DNS 服务器,就可以向外部主机发送邮件。要让邮件被送到 FreeBSD 主机上的 MTA,请执行以下操作之一:

  • 运行一个域名的 DNS 服务器。

  • 让邮件直接投递到机器的 FQDN 上。

为了让邮件直接送到主机上,它必须有一个永久的静态 IP 地址,而不是动态 IP 地址。如果系统在防火墙后面,它必须被配置为允许 SMTP 流量。要在主机上直接接收邮件,必须配置这两个中的一个:

  • 确保 DNS 中编号最低的 MX 记录指向该主机的静态 IP 地址。

  • 确保在 DNS 中没有该主机的 MX 条目。

上述任何一项都将允许在主机上直接接收邮件。

试试这个:

v# hostname
example.FreeBSD.org
# host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XX

在这个例子中,假设 Sendmail 在 example.FreeBSD.org 上正常运行,直接发送到 [email protected] 的邮件应该没有问题。

对于这个例子:

# host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XX
example.FreeBSD.org mail is handled (pri=10) by nevdull.FreeBSD.org

所有发往 example.FreeBSD.org 的邮件都会被收集到 hub 上的同一个用户名下,而不是直接发往你的主机。

上述信息是由 DNS 服务器处理的。携带邮件路由信息的 DNS 记录是 MX 条目。如果没有 MX 记录,邮件将通过其 IP 地址直接送到主机上。

freefall.FreeBSD.org 的 MX 条目曾经是这样的:

# host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XX
example.FreeBSD.org mail is handled (pri=10) by nevdull.FreeBSD.org

freefall 有许多 MX 条目。最低的 MX 号码是直接接收邮件的主机,如果有的话。如果它由于某种原因不能访问,下一个较低编号的主机将暂时接受邮件,并在较低编号的主机可用时将其传递。

备用 MX 站点应该有独立的互联网连接,以便发挥最大作用。你的 ISP 可以提供这种服务。

29.6.2. 域名邮件

当为一个网络配置 MTA 时,任何发送到其域内主机的邮件都应该被转移到 MTA,以便用户可以在主邮件服务器上收到他们的邮件。

为了使生活变得更简单,在 MTA 和带有 MUA 的系统上都应该存在一个具有相同用户名的用户账户。使用 adduser(8)open in new window 来创建用户账户。

MTA 必须是网络上每个工作站的指定邮件交换器。这可以在 DNS 配置中通过 MX 记录来完成:

example.FreeBSD.org	A	204.216.27.XX		; Workstation
			MX	10 nevdull.FreeBSD.org	; Mailhost

这将使工作站的邮件重定向到 MTA,无论 A 记录指向哪里。邮件会被发送到 MX 主机上。

这必须在 DNS 服务器上进行配置。如果网络没有运行自己的 DNS 服务器,请与 ISP 或 DNS 提供商沟通。

下面是一个虚拟电子邮件托管的例子。考虑一个域名为 customer1.org 的客户,customer1.org 的所有邮件都应该被发送到 mail.myhost.com。DNS 条目应该是这样的:

customer1.org		MX	10	mail.myhost.com

customer1.org 需要 A 记录,以便只处理该域名的电子邮件。然而,除非有 A 记录存在,否则对 customer1.org 运行 ping 将不工作。

告诉 MTA 它应该接受哪些域名和/或主机名的邮件。以下两种方法都适用于 Sendmail:

  • 在使用 FEATURE(use_cw_file) 时,将主机添加到 /etc/mail/local-host-names

  • /etc/sendmail.cf 中添加 Cwyour.host.com 一行。