FreeBSD 使用手册
上一页 | 第28章 　电子邮件 | 下一页

# 28.6 高级主题

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

## 28.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

如果您看到这些， 则直接发往 `<yourlogin@example.FreeBSD.org>` 应该已经可以正常工作了 (假设 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 或者其它友好的站点可以没有任何问题的为您提供这个服务。

## 28.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 或者更高版本。

上一页 | 起始页 | 下一页
疑难解答 | 上一级 | SMTP 与 UUCP

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

如果对于FreeBSD有问题，请先阅读文档，如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.