Mew

简介

我一直在找一个方便好用的邮件客户端,在使用 KDE 的时候我一直用 Kmail , 现在不用 KDE 了,也想找一个更强大的邮件客户端。Gnus 作为新闻阅读器是非 常不错的,但是要方便地用于邮件管理还是需要很大的技巧,况且 Gnus 本身已 经很慢了,Emacs 又是单线程的,经常因为 Gnus 而暂时挂起,所以我决定尝试 一下 Emacs 以外的一个有名的邮件客户端 Mutt

Mutt 是很不错的,不过后来我把 Gnus 和平时使用的 Emacs 作为两个不同的进 程来启动,就不怕拖累 Emacs 了,同时又听说了 Mew ,决定尝试一下。

安装和配置

安装

http://www.mew.org 可以下载到最新的 mew 的打包文件。如果是 Debian 系统的话,可以直接用 apt-get 进行安装。不过 Debian 里面的 mew 依赖于 emacsen ,如果你安装了 emacs21 或者 emacs-snapshot 的话,没有任何问题, 或者自己编译安装了 Emacs 并且相应配置好了 emacsen 机制,也是可以的。

我对 Debian 的 emacsen 的机制并不是特别了解,而且我是自己编译的 Emacs ,所以我决定直接使用源代码进行安装。可是我从其主页上下载速度几乎为零, 幸好 apt-get 也可以取得源代码,所以我就直接使用 apt-get 了:

sudo apt-get source mew-beta

之后进入到源代码目录,然后:

./configure
make
make info
sudo make install

如果一切顺利,那么恭喜你,mew 已经安装到系统里面去了!

配置

安装完之后还需要配置一下才能使用,在 ~/.emacs 里面加入下列语句用于告诉 Emacs 如何启动 mew :

真正的邮件相关的配置根据约定应该放在 ~/.mew.el 里面。里面可以设置自己 的名字以及 email 地址、邮箱等,具体可以参考 mew 所带的 info 文档。我使 用 Fetchmail 进行收信,并使用 Procmail 进行初步过滤后送到一个 maildir 格式的本地邮箱里面,并通过本地 Exim4 进行发信,所以不需要配置远程的 POP3 以及 SMTP 等。

使用简介

地址簿

Mew 提供地址自动完成功能,在输入地址的时候可以使用 TAB 键来进行自动完 成,自动完成有几个信息来源:

  1. 地址簿中指定的扩展规则
  2. 地址簿中提供的个人信息
  3. 发送邮件的时候自动学习记录下来的地址

Mew 提供两种补全方式,由变量 mew-use-full-alias 来控制,这个变量默认情 况下是 nil ,就是第一种补全方式,我们通常使用这种。两种补全方式的优缺 点可以参考 mew 的文档。

Mew 的地址簿默认是 ~/Mail/Addrbook 这个文件,里面有两种信息:扩展规则 和个人信息。

扩展规则的格式是:

<shortname>: <address1>[, <address2>, <address3, ...]

我们通常不使用这个,不过如果需要一个名称扩展到多个地址的时候可以使用这 个,例如:

friends: pluskid@mstczju.org, pluskid.zju@gmail.com

另外一种格式是个人信息的存放格式:

<shortname> <address1>[, <address2>, <address3>, ...] <nickname> <fullname>

注意这里没有冒号了。如果使用第一种补全方式,那么可以通过不断地按 TAB 键来在个人信息里面指定的各个邮件地址之间循环,而不是向扩展规则中指定的 那样一下子把全部地址扩展出来。另外, nicknamefullname 也是很有用的, 例如,在 summary-mode 里面可以以 nickname 来代替发件人地址显示出来。

另外,还可以使用 # 或者 ; 作为注释,需要注意的是, ; 只有在行首的时候 被认为是注释,而 # 则可以用在任何地方。

修改了地址簿之后,可以在 summary-mode 里面按 Z 提示 mew 读取更新后的地 址簿的信息。

作为一个例子,假如地址簿里面有一条:

kid pluskid@mstczju.org, pluskid.zju@gmail.com pluskid pluskid

并且使用第一种补全方式。那么,在输入 k 之后按 TAB (假如没有其他匹配的 选项),就会补全为 kid ,继续按 TAB ,则会出现 pluskid@mstczju.org ,再 按 TAB 则变为下一个地址 pluskid.zju@gmail.com ,这个时候按下 M-TAB , 则会变为 pluskid <pluskid.zju@gmail.com> 的样子。非常方便吧?

邮件分类

Mew 有非常方便的邮件分类功能,正如他文档里面所说的那样:“Happy refiling”。因为他有一套复杂的算法来自动计算邮件应该被归到的类别。在 summary-mode 里面按 o 即可对当前邮件进行分类,mew 会问你把邮件分类到哪 个文件夹里面去,并提供了一个默认的选项,通常情况下默认选项就是正确的选 项,所以直接回车就可以了。

按照文件夹来猜测分类

通常我们会把同一个邮件列表里面的所有邮件归类到一个文件夹里面,mew 也对 这个功能提供了支持。例如,我有一个叫做 +misc/allmstc 的文件夹,那么这 样一封邮件会被 mew 猜测应该是归类到这个文件夹里面去:

To: allmstc@mstczju.org

因为 mew 会自动搜索是否存在对应于 To:Cc: 的文件夹。如果你对猜测的 文件夹不满意,可以自己输入一个,如果这个文件夹不存在,它会被创建并自动 添加到文件夹列表里面(通常保存在 ~/Mail/.mew-folder-alist 里面)。

另外,如果你只使用小写字母命名自己的邮件文件夹的话,把 mew-use-fast-refile 设置为 t 用于加快速度。通常我们使用多层文件夹,默认 情况下每一层文件夹都被作为一个可用的邮件文件夹,但是我们通常只希望使用 最后一层文件夹(例如 +misc/allmstc ,我们希望 allmstc 作为一个邮件文件夹, 而 misc 只是作为一个大类,并不用于存放文件。),那么只需要把 mew-use-node-folder 设置为 nil 即可。

附件处理

发送附件

Mew 允许你轻松编辑一个复杂的多媒体邮件。在编辑邮件的时候,按 C-c C-a 即可开始添加附件,这个时候邮件的末尾会出现如下类似的字样:

------------------------------ attachments ------------------------------
      Multipart/Mixed                                                                   1/
     1  Text/Plain(guess)                                                                 *Cover.txt
     2                                                                                    .
--------0-1-2-3-4-5-6-7-8-9----------------------------------------------

其中 1/ 是一个用于处理附件的临时目录,默认是 ~/Mail/attach/1 这个目录。 默认已经插入的这个附件 Cover.txt 其实就是邮件的文本内容。这个时候按下 c 即可添加附件,输入要添加的附件的路径即可把附件拷贝到这个临时目录下面, 也可以使用 l 来创建链接,但是如果要编辑附件的话,最好使用 c 来拷贝,免 得修改了原来的文件。

另外,除了添加已经存在的附件以外,还可以使用 F 来打开一个新的文件进行编 辑并添加为附件。随时可以使用 f 命令重新打开一个附件进行编辑,使用=P= 来改 名或者使用 d 进行删除。

m 可以建立子目录,在附件多的时候可以方便对附件进行分类管理。 C-fC-b 可以在不同层次的目录之间切换。

小技巧

邮件乱码问题

有时候邮件所声称的自己的编码事实上是错误的,邮件会显示为乱码。Mew 可以 很好地处理这个问题,你可以通过 C-c C-l 来让 mew 自动猜测正确的编码来显 示邮件。

summary-mode 的格式

summary-mode 显示的格式可以由 mew-summary-form 来控制,通过 C-h v 来查 看这个变量可以获取详细的文档。我在使用的时候发现设置了这个变量根本不起 作用,后来发现设置之后并不会影响到以前的邮件,只有新收到的邮件才会应用 这个设置。因为 mew 对 summary 进行了缓存,你可以手工删除缓存让他重新生 成,缓存是在自己邮箱文件夹下的一个文件,例如: ~/Mail/inbox/.mew-summary

另外,把 mew-use-unread-mark 设置为 t 可以让 mew 自动在未读邮件前面加 上 N 的标记。