29.9. 拨号连接时使用邮件传送
上一页 | 第 29 章 电子邮件 | 下一页

## 29.9. 拨号连接时使用邮件传送

如果您有静态的 IP 地址， 就应该不用修改任何默认的配置。 将主机名设置为分配给您的 Internet 名称，其他的事情 sendmail 都会替您做好。

如果您的 IP 地址是动态分配的， 并使用 PPP 连接拨入 Internet， 则您可能会从 ISP 的邮件服务器上得到一个信箱。 这里我们假设您的 ISP 的域名是 `example.net`， 您的用户名是 `user`， 您把自己的机器称作 `bsd.home`， 而您的 ISP 告诉您可以使用 `relay.example.net` 来转发邮件。

为了从邮箱收取邮件， 需要安装一个收信代理。 fetchmail 是一个能够支持许多种不同协议的不错的选择。 这个程序可以通过 package 或 Ports Collection (`mail/fetchmail`) 来安装。 通常， 您的 ISP 会提供 POP。 如果您使用用户 PPP，您还可以在 Internet 连接建立时自动地抓取邮件， 这可以通过在 `/etc/ppp/ppp.linkup` 中增加如下的项来实现：

MYADDR: !bg su user -c fetchmail

如果您正使用 sendmail (如下所示) 来为非本地用户传送邮件， 则可能需要让 sendmail 在您的 Internet 连接建立时立即传送邮件队列。 要完成这项工作， 应该把下面的命令放到 `/etc/ppp/ppp.linkup` 中的 `fetchmail` 之后

!bg su user -c "sendmail -q"

假设您在 `bsd.home` 上有一个 `user` 用户。 在 `bsd.home` 上的 `user` 主目录中创建一个 `.fetchmailrc` 文件：

poll example.net protocol pop3 fetchall pass MySecret

因为包含了密码 `MySecret`， 这个文件应该只有 `user` 可读。

要使用正确的 `from:` 头来发送文件， 您必须告诉 sendmail 使用 `<user@example.net>` 而不是i `<user@bsd.home>`。 另外， 您可能也需要要求 sendmail 通过 `relay.example.net` 来发送邮件， 以便更快地传送它们。

以下的 `.mc` 文件应该可以满足您的需求：

VERSIONID(`bsd.home.mc version 1.0') OSTYPE(bsd4.4)dnl FEATURE(nouucp)dnl MAILER(local)dnl MAILER(smtp)dnl Cwlocalhost Cwbsd.home MASQUERADE_AS(`example.net')dnl FEATURE(allmasquerade)dnl FEATURE(masquerade_envelope)dnl FEATURE(nocanonify)dnl FEATURE(nodns)dnl define(`SMART_HOST', `relay.example.net') Dmbsd.home define(`confDOMAIN_NAME',`bsd.home')dnl define(`confDELIVERY_MODE',`deferred')dnl

如何转换这个 `.mc` 文件到 `sendmail.cf` 文件的细节，请参考前面的章节。 另外，在更新 `sendmail.cf` 文件后， 不要忘记重启 sendmail。

上一页 | 上一级 | 下一页
29.8. 只发送邮件的配置 | 起始页 | 29.10. SMTP 验证

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

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