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

# 29.7 SMTP 与 UUCP

sendmail 的配置，在 FreeBSD 中已经配置好为您的站点直接的连接 Internet。 如果站点希望他们的邮件通过 UUCP 交换，则必须安装其它的 sendmail 配置文件。

手工的配置 `/etc/mail/sendmail.cf` 是一个高级主题。sendmail 8 版本通过 m4(1) 预处理生成一个配置文件，实际上这个配置发生在一个比较高的抽象层。 m4(1) 配置文件可以在 `/usr/share/sendmail/cf` 下找到。 `cf` 目录中的 `README` 文件是关于 m4(1) 配置的基本的介绍。

最好的支持 UUCP 传送的方法是使用 `mailertable` 的特点。建立一个资料库让 sendmail 可以使用它自己的路由决策。

首先，您必须建立您自己的 `.mc` 文件。 `/usr/share/sendmail/cf/cf` 目录包含一些例子。 假定您已经命名自己的文件叫做 `foo.mc`， 您要做的只是把它转换成一个有效的 `sendmail.cf`：

    # cd /etc/mail
    # make foo.cf
    # cp foo.cf /etc/mail/sendmail.cf

一个典型的 `.mc` 文件看起来可能象这样：

    VERSIONID(`Your version number') OSTYPE(bsd4.4)

    FEATURE(accept_unresolvable_domains)
    FEATURE(nocanonify)
    FEATURE(mailertable, `hash -o /etc/mail/mailertable')

    define(`UUCP_RELAY', your.uucp.relay)
    define(`UUCP_MAX_SIZE', 200000)
    define(`confDONT_PROBE_INTERFACES')

    MAILER(local)
    MAILER(smtp)
    MAILER(uucp)

    Cw    your.alias.host.name
    Cw    youruucpnodename.UUCP

`accept_unresolvable_domains`、 `nocanonify` 和 `confDONT_PROBE_INTERFACES` 特性将避免在传送邮件时使用DNS的机会。`UUCP_RELAY` 项是支持 UUCP 传送所必须的。简单的放入一个 Internet 上可以处理 UUCP 虚拟域地址的主机名。通常，您在这里填入您 ISP 邮件的回复处。

一旦您做完这些，您还需要这个 `/etc/mail/mailertable` 文件。 如果您只有一个用来传递所有邮件的对外通道的话， 以下的文件就足够了：

    #
    # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
    .                             uucp-dom:your.uucp.relay

一个更复杂点的例子象这样：

    #
    # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
    #
    horus.interface-business.de   uucp-dom:horus
    .interface-business.de        uucp-dom:if-bus
    interface-business.de         uucp-dom:if-bus
    .heep.sax.de                  smtp8:%1
    horus.UUCP                    uucp-dom:horus
    if-bus.UUCP                   uucp-dom:if-bus
    .                             uucp-dom:

头三行处理域地址邮件，不应该被传送出默认的路由， 而由某些 UUCP 邻居取代的特殊情况，这是为了走“捷径”。 下一行处理本地网的邮件让它可以使用 SMTP 来传送。 最后，UUCP 邻居提起。UUCP 虚拟域的记载， 允许一个 ``uucp-neighbor` !`recipient`` 推翻默认规则。最后一行则以一个单独的句点最为结束， 以 UUCP 传送到提供您所有的邮件网关的 UUCP 邻居。 所有在 `uucp-dom:` 关键字里的节点名称必须是有效的 UUCP 邻居，您可以用 `uuname` 去确认。

提醒您这个文件在使用前必须被转换成 DBM 数据库文件。最好在 `mailertable` 最上面用注解写出命令行来完成这个工作。 当您每次更换您的 `mailertable` 后您总是需要执行这个命令。

最后提示：如果您不确定某个特定的路径可用， 记得把 `-bt` 选项加到 sendmail。这会将 sendmail 启动在 地址检测模式。只要按下 `3,0`，接着输入您希望测试的邮件路径位置。 最后一行告诉您使用邮件代理程序， 代理程序会通知目的主机以及 (可能转换) 地址。 要离开此模式请按 Ctrl+D。

    % sendmail -bt
    ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
    Enter <ruleset> <address>
    > 3,0 foo@example.com
    canonify           input: foo @ example . com
    ...
    parse            returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . >
    > ^D

上一页 | 起始页 | 下一页
高级主题 | 上一级 | 只发送邮件的配置

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

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