因为 Linux 下工作,邮件使用频率较高。遂选择一款好的邮件客户端是件必要的事情。经两天的间断时间,简单配置了 Emacs 中使用 Mail、Rmail 用以收发邮件。在此,只简单介绍 Rmail 的使用。Rmail 是什么呢?我认为 Rmail 是一个利用本地应用 movemail,将本地用户邮箱或远程邮箱(支持多种协议)里的新邮件合并追加到 Primary Mail File 里的 Emacs 插件。下面图片希望可以有助于快速熟悉 Rmail。在此也会根据下图来介绍 Rmail。
Rmail 启动(M-x rmail)时会读取 PrimaryMail Box 和合并子邮箱 (上图 Mail Box 1-3)里的新邮件到 Primary Mail Box。Emacs Lisp 变量’rmail-file-name’用以定义 Primary Mail File 的位置,默认是”~/RMAIL”。
(setq rmail-file-name "~/mails/rmail") ; Rmail Primary Mail
参阅手册Basic Concepts of Rmail小节。
这部分就是上面提到的 movemail 了,也是收取安全类型为 TLS 等策略的邮件的重要环节。 Rmail 使用 movemail 应用来移动子邮箱里的新邮件到 Primary Mail Box。 可使用的 movemail 有两个。
- Emacs 自带的 movemail
- GNU Mailutils下的 movemail
因为 Emacs 自带的 movemail 功能不如 Mailutils 的强大,最重要的是我们需要 Emacs movemail 不支持的 TLS/STARTTLS。所以,安装 Mailutils 是件必要的事情。 Mailutils 下载。安装后需要改变 Emacs movemail 的加载位置,如下:
(setq rmail-movemail-program "/opt/mailutils-3.0/bin/movemail") ; movemail
关于 Movemail 的细节在movemail program,关于为什么换用 Mailutils 的 movemail 见Retrieving Mail from Remote Mailboxes。
接下来就是需要配置子邮箱咯。根据Rmail Files and Inboxes小节说明。子邮箱在默认不配置 的情况下,movemail 会读取/var/mail/username、/var/spool/mail/username 或 /usr/spool/mail/username,并合并新邮件到 Primary Mail Box。然而,工作中经常查看的 是远端服务器上邮箱里的邮件。所以,接下来配置 Emacs lisp 变量“rmail-primary-inbox-list”, 将远端服务器邮箱配置在列。让 movemail 读取远端邮箱里的新邮件,并合并到 Primary Mail Box。 更多子邮箱的 URL 格式遵守:“PROTO://[USER[:PASSWORD]@]HOST-OR-FILE-NAME”格式。
(setq rmail-primary-inbox-list '("pop://[email protected]"
"/var/mail/localuser"))
这里多的添加了一个 file 协议的子邮箱,用以实践说明‘movemail’ program里的协议。 更多子邮箱配置细节参考movemail program、Rmail Files and Inboxes,远端邮箱配置 参考Retrieving Mail from Remote Mailboxes。
在此请原谅出现的疏漏和错误,否则你也不能怎么着我。^_^!
就不说我的邮箱是:[email protected],让你想批评我还找不到我。
(setq rmail-file-name "~/mails/rmail") ; Rmail Primary Mail Box
(setq rmail-movemail-program "/opt/mailutils-3.0/bin/movemail") ; movemail
(setq rmail-primary-inbox-list '("pop://[email protected]" ; Remote Mail Box
"/var/mail/localuser") ; Local Mail Box
rmail-pop-password-required t) ; Prompt