邮件交换可以分为 5 部分。它们是: 用户端程序、服务端守护进程、DNS、远程或本地的邮箱、 当然,还有邮件主机自己。
这包括一些基于命令行的程序,例如
mutt、
alpine、elm
和 mail
,以及类似 balsa、
xfmail 这样的 GUI 程序。
此外,还有我们更“熟悉的”WWW 浏览器这样的程序。
这些程序简单地通过调用服务守护进程把邮件事务交给本地的
“邮件主机”,或者通过
TCP 把邮件发出去。
FreeBSD 默认情况下采用 sendmail, 但它也支持为数众多的其它邮件服务程序, 这其中包括:
exim;
postfix;
qmail.
邮件服务器后台守护程序通常有两个功能 ──
接收外面发来的邮件和把邮件传送出去。 但它
不 负责使用类似
POP 或 IMAP 这样的协议来帮您阅读邮件,
也不负责连接到本地的
mbox
或 Maildir 信箱。 您可能需要其它的
服务程序 来完成这些任务。
较早版本的 sendmail 有一些严重的安全问题, 他们可能导致攻击者从本地和/或远程操作您的电脑。 您应该确认自己使用的是最新版本以避免这些问题。 另外, 也可以从 FreeBSD Ports Collection 来安装其它的 MTA。
域名系统 (DNS) 及其服务程序
named
在email的投递过程当中扮演着很重要的角色。
为了能够从您的站点向其它的站点传递邮件, 服务程序需要通过 DNS 查找接收邮件的远程站点的位置。
类似地, 在远程站点向您的主机投递邮件时也会发生这样的查找。
DNS 负责将主机名映射为 IP 地址, 同时, 也需要保存递送邮件时所需要的信息, 这些信息称作 MX 记录。 MX (Mail eXchanger,邮件交换) 记录指定了哪个, 或哪些主机能够接收特定域下的邮件。 如果您没有为主机名或域名设置 MX 记录, 则邮件将被直接递交给主机名对应 IP 所在的主机。
您可以通过 host(1) 命令来查找任何域或主机名对应的 MX 记录, 如下面的例子所示:
为您的域接收邮件是通过邮件服务器来完成的。
它收集发送给您的域的那些邮件,并保存到
mbox
(存储邮件默认的方法) 或 Maildir 格式,
这取决于您采用的配置。
一旦邮件被保存下来, 就可以在本地通过类似
mail(1) 或
mutt 这样的程序, 或在远程通过
POP 或 IMAP 这样的协议来读取了。
简单地说, 如果您只在本地阅读邮件,那就没有必要安装
POP 或 IMAP 服务。
如果希望在远程访问邮箱, 就需要访问 POP 或 IMAP 服务器。 这些协议允许用户从远程方便地访问他们的信箱。 尽管 POP 和 IMAP 都允许用户从远程访问信箱, 但 IMAP 有很多优点, 这包括:
IMAP 既可以从远程服务器上抓取邮件, 也可以把邮件放上去。
IMAP 支持并发更新。
IMAP 对于使用低速网络的用户尤为有用, 因为它能够让这些用户把邮件的结构下载下去, 而无需立即下载整个邮件。 它还可以在服务器端执行类似查找这样的操作, 以减少客户机和服务器之间的通讯量。
您可以按照下面的步骤来安装和配置 POP 或 IMAP 服务器:
选择一个最符合需要的 IMAP 或 POP 服务器。 下列 POP 和 IMAP 服务器是最著名的, 而且都有很多成功案例:
qpopper;
teapop;
imap-uw;
courier-imap;
dovecot;
通过 ports collection 安装 POP 或 IMAP 服务。
根据需要修改 /etc/inetd.conf
来加载 POP 或
IMAP 服务。
此外还应注意的是 POP 和 IMAP 传递的信息, 包括用户名和口令等等, 通常都是明文的。 这意味着如果您希望加密传输过程中的信息, 可能需要考虑使用 ssh(1) 隧道或者使用SSL。 关于如何实施隧道在 第 15.10.8 节 “SSH 隧道” 中进行了详细阐述, SSL 部分在第 15.8 节 “OpenSSL”。
信箱可以在邮件服务器本地直接用 MUA 来进行操作。 这通常是通过 mutt 或 mail(1) 这样的应用程序实现的。
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.