29.11. 邮件用户代理

Contributed by Marc Silver.

邮件用户代理 (MUA) 是一个用于收发邮件的应用程序。 更进一步, 随着电子邮件的 演化 并愈发复杂, MUA 在和电子邮件相结合方面变得日趋强大; 这为用户提供了更多的功能和灵活性。 FreeBSD 包含了对于众多邮件用户代理的支持, 所有这些都可以通过 FreeBSD Ports Collection 来轻松安装。 用户可以选择类似 evolution 以及 balsa 这样的图形界面程序, 也可以选择类似 muttalpinemail 这样的控制台程序, 或者某些大型机构使用的 web 界面。

29.11.1. mail

mail(1) 是 FreeBSD 中默认的邮件用户代理 (MUA)。 它是一个基于控制台的 MUA, 提供了所有用于收发文本形式的电子邮件所需的基本功能, 虽然它处理附件的能力有限, 而且只支持本地的信箱。

虽然 mail 没有内建的 POPIMAP 服务器支持, 然而这些信箱可以通过类似 fetchmail 这样的应用程序, 来下载到本地的 mbox 文件中。 这一应用程序在本章的稍后部分 (第 29.12 节 “使用 fetchmail”) 进行了介绍。

要收发邮件, 只需简单地使用 mail 命令, 如下所示:

% mail

用户保存在 /var/mail 中的信箱的内容会被 mail 程序自动地读取。 如果信箱是空的, 程序会退出并给出一个消息表示没有邮件。 一旦读完了信箱, 将启动应用程序的界面, 并列出邮件。 所有的邮件会被自动编号, 类似下面的样子:

Mail version 8.1 6/6/93.  Type ? for help.
"/var/mail/marcs": 3 messages 3 new
>N  1 root@localhost        Mon Mar  8 14:05  14/510   "test"
 N  2 root@localhost        Mon Mar  8 14:05  14/509   "user account"
 N  3 root@localhost        Mon Mar  8 14:05  14/509   "sample"

现在, 您通过使用 mailt 命令, 并给出邮件的编号, 就可以看到邮件了。 在这个例子中, 我们将阅读第一封邮件:

& t 1
Message 1:
From root@localhost  Mon Mar  8 14:05:52 2004
X-Original-To: marcs@localhost
Delivered-To: marcs@localhost
To: marcs@localhost
Subject: test
Date: Mon,  8 Mar 2004 14:05:52 +0200 (SAST)
From: root@localhost (Charlie Root)

This is a test message, please reply if you receive it.

正如在上面的例子中所看到的, t 键将显示完整的邮件头。 要再次查看邮件的列表, 可以使用 h 键。

如果需要回复邮件, 也可以使用 mail 来完成, 方法是使用 Rr 这两个 mail键。 R 键会要求 mail 只回复发送邮件的人, 而 r 不仅回复发送邮件的人, 而且也会将回复抄送给原来邮件的其他接收者。 如果需要, 也可以在这些命令后面指定邮件的编号。 做完这些之后, 就可以输入回复了, 在邮件的最后应该有一个只有一个 . 的行, 例如:

& R 1
To: root@localhost
Subject: Re: test

Thank you, I did get your email.
.
EOT

要发出新邮件, 可以使用 m, 后面接收件人的邮件地址。 多个收件人之间, 应该使用 , 隔开。 接下来需要输入邮件的主题, 然后是正文。 同样的, 在邮件最后需要一个只有 . 的空行表示结束。

& mail root@localhost
Subject: I mastered mail

Now I can send and receive email using mail ... :)
.
EOT

mail 工具中, 可以用 ? 来显示帮助, 而参考 mail(1) 联机手册则可以获得更多关于 mail 的帮助信息。

注意:

正如前面所提到的那样, mail(1) 命令在设计时没有考虑到要处理附件, 因而在这方面他的功能很弱。 新的 MUA, 如 mutt, 能够更好地处理附件。 但如果您仍然希望使用 mail 命令, 那么 converters/mpack port 则是一个值得考虑的附加工具。

29.11.2. mutt

mutt 是一个短小精悍的邮件用户代理, 它提供了许多卓越的功能, 包括:

  • 能够按线索阅读邮件;

  • 支持使用 PGP 对邮件进行数字签名和加密;

  • 支持 MIME;

  • 支持 Maildir;

  • 高度可定制。

所有这些特性, 都使得 mutt 得以跻身于目前最先进的邮件用户代理的行列。 请参考 http://www.mutt.org 以了解更多关于 mutt 的资料。

稳定版本的 mutt 可以通过 mail/mutt port 来安装, 而开发版本, 则可以通过使用 mail/mutt-devel port 安装。 通过 port 安装之后,可以通过下面的命令来启动 mutt

% mutt

mutt 会自动读取 /var/mail 中的用户信箱, 并显示其内容。 如果用户信箱中没有邮件, 则 mutt 将等待来自用户的命令。 下面的例子展示了 mutt 列出邮件的情形:

要阅读邮件, 只需用光标键选择它, 然后按 Enter 键。 以下是 mutt 显示邮件的例子:

mail(1) 类似, mutt 允许用户只回复发件人, 或者回复所有人。 如果只想回复发信人, 使用 r 快捷键。 要回复所有人 (group reply), 可以用 g 快捷键。

注意:

mutt 会使用 vi(1) 命令作为编辑器, 用于创建和回复邮件。 这一行为可以通过建立用户自己的 .muttrc 文件来订制, 方法是修改 editor 变量或配置 EDITOR 环境变量。 请参见 http://www.mutt.org/ 以了解配置 mutt 的进一步信息。

要撰写新邮件, 需要首先按 m。 在输入了有效的邮件主题之后, mutt 将启动 vi(1), 您可以在其中撰写邮件。 写好邮件的内容之后, 存盘并退出 vi, 则 mutt 将继续, 并显示一些关于将发出的邮件的摘要信息。 要发送邮件, 只需按 y。 下面给出了摘要信息的一个例子:

mutt 也提供了相当详尽的帮助, 在绝大多数菜单中, 都可以使用 ? 键将其呼出。 屏幕顶行中也会给出常用的快捷键。

29.11.3. alpine

alpine 主要是针对初学者设计的, 但也提供了一些高级功能。

警告:

过去, alpine 软件被发现有许多远程漏洞, 这些漏洞会允许远程的攻击者在用户的本地系统上, 通过发送精心炮制的邮件来执行任意的代码。 所有的 已知 问题都已经被修正了, 但 alpine 的代码是以很不安全的风格编写的, 并且 FreeBSD 安全官相信仍然有一些尚未被发现的安全漏洞。 您应当考虑并承担安装 alpine 可能带来的风险。

最新版本的 alpine 可以通过使用 mail/alpine port 来安装。 装好之后, alpine 可以通过下面的命令启动:

% alpine

第一次启动 alpine 时, 它会显示出一个欢迎页, 并给出简要的介绍, 以及 alpine 开发小组要求用户匿名发送一封邮件, 以便帮助他们了解有多少用户在使用他们开发的客户程序的请求。 要发送这封匿名的邮件, 请按 Enter, 您也可以按 E 退出, 而不发送匿名邮件。 下面是欢迎页的一个例子:

接下来展现给用户的将是主菜单, 可以很容易地通过光标键在上面进行选择。 这个主菜单提供了用于撰写新邮件、 浏览邮件目录, 甚至管理地址簿等等的快捷方式。 主菜单下面是完成各种功能的快捷键说明。

alpine 打开的默认目录是 inbox。 要查看邮件索引, 应按 I, 或选择下面所示的 MESSAGE INDEX 选项:

邮件索引展示了当前目录下的邮件, 可以使用光标键翻阅。 按 Enter 键阅读高亮选定的邮件。

在上面的截屏中, 使用 alpine 显示了一封示例邮件。 在屏幕底部也显示了快捷键供参考。 其中的一个例子是 r 键, 它告诉 MUA 回复正显示的邮件。

alpine 中回复邮件, 是通过 pico 编辑器完成的, 后者默认情况下会随 alpine 一起安装。 而 pico 工具使得浏览邮件变得更加简单, 并且要比 vi(1)mail(1) 更能容忍误操作。 回复写好之后, 可以用 Ctrl+X 来发出它。 此前, alpine 程序会要求确认。

alpine 程序可以通过使用主菜单中的 SETUP 选项来进行定制。 请参考 http://www.washington.edu/alpine/ 来了解更多信息。

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

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.