29.7. SMTP 与 UUCP
上一页 | 第 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`

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

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

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