29.6. 高级主题

下面这节将介绍邮件配置和为整个域安装邮件。

29.6.1. 基本配置

在邮箱外,只要您设置 /etc/resolv.conf 或者运行您自己的名字服务器,您就可以发送邮件到外部的主机。 如果您想要您的邮件发送给某个特定的 MTA(例如, sendmail) 在您的 FreeBSD 主机上,有两个方法:

  • 运行您自己的域名服务器和您自己的域。例如, FreeBSD.org

  • 获得直接分发给您主机的邮件。您可以直接使用您当前的 DNS 名称。例如,example.FreeBSD.org

不管您选择上面那种方法,为了直接在您的主机上发送邮件, 必须有一个静态的 IP 地址(不是象 PPP 拨号一样的动态地址)。 如果您在防火墙后面,它必须让 SMTP 协议通过。 如果您想要在您的主机上直接的收取邮件, 您必须确定两件事:

  • 确定在您 DNS 中的 MX 记录(最小编号的)指向您的 IP 地址。

  • 确定在您 DNS 中的 MX 记录没有禁止您的主机。

上面的每条记录都允许您在您的主机直接接收邮件。

试试这个:

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

如果您看到这些, 则直接发往 应该已经可以正常工作了 (假设 sendmail 已经在 example.FreeBSD.org 上正确启动了)。

如果您看到这些:

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

所有发送到主机 (example.FreeBSD.org) 的邮件在相同的用户名下将会被 hub 终止的收集,而不是直接发送到您的主机。

上面的信息是通过您的 DNS 服务器来处理的。支持邮件路由信息的 DNS 记录是 邮件 交换 记录。如果 MX 记录不存在,邮件将通过它自己的 IP 地址被直接的发送到主机。

freefall.FreeBSD.org的MX记录如下所示:

freefall MX 30 mail.crl.net freefall MX 40 agora.rdrop.com freefall MX 10 freefall.FreeBSD.org freefall MX 20 who.cdrom.com

正如您说看到的,freefall 有很多 MX 记录。 最小编号的 MX 记录是直接接收邮件的主机。如果因为一些原因它不可用,其它 (有时会访问backup MXes)接收信息将会暂时接替并做临时的排列。

为了有效的使用交换式 MX 站点,应当从您的机器上分离一些 Internet 连接。您的 ISP 或者其它友好的站点可以没有任何问题的为您提供这个服务。

29.6.2. Mail for Your Domain

为了设置一个邮件主机(又称邮件服务器) 您必须要把许多邮件发送到与它相连的几个工作站中。 基本上,您想要要求在您域的每个主机的所有邮件 (在这个例子里是 *.FreeBSD.org) 转向到您的邮件服务器,从而使您的用户可以在主邮件服务器里接收他们的邮件。

要使工作最简单,带有同样 用户名 的帐户应该同时存在于两台机器上。使用 adduser(8) 来这样做。

您将使用的邮件主机必须为每个工作站指定一个邮件交换。您可以在 DNS 中这样配置:

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

无论 A 记录指向哪,这将为工作站重新定位到邮件主机。邮件将被发送到 MX 主机。

您不能自己这样做除非您运行着一个 DNS 服务器。 如果不是这样,或者不能运行您自己的 DNS 服务器,告诉您的 ISP 或者给您提供 DNS 服务的人。

如果您正在使用虚拟邮件主机,下面的信息将会对您有用。 在这个例子里,我们假定您有一个客户并且他有自己的域, 这个例子中是 customer1.org,您要把 customer1.org 所有的邮件发送到您的邮件主机 mail.myhost.com。 您的 DNS 记录应该是这样:

customer1.org MX 10 mail.myhost.com

需要有个 A 记录, 如果您只为域 customer1.org 处理邮件。

注意:

必须清楚 customer1.org 将不能工作,除非存在一个 A 记录。

最后一件您必须要做的事是告诉 sendmail 接受邮件的是什么域和(或)主机名。 这里有好几种方法。下面方法可以任选一种:

  • 添加您的主机到 /etc/mail/local-host-names 文件中,如果您使用的是 FEATURE(use_cw_file)。如果您使用 sendmail 8.10 或者更高版本,文件是 /etc/sendmail.cw

  • 添加一行 Cwyour.host.com 到您的 /etc/sendmail.cf/etc/mail/sendmail.cf 文件,如果您使用 sendmail 8.10 或者更高版本。

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.