我的工作生活重度依赖Gmail和Emacs,它们的结合,让我欣喜万分。通过Emacs Gnus收发Gmail之后,我不用了,因为IMAP不是HTTP(S)协议,没有被墙。我能很惬意的在Emacs中收发,检索Gmail邮件。
本文已经重新修改过,测试环境是Emacs 24.3.1 和 Ubuntu 13.10.
如何配置的细节请参考一篇非常重要的文章:
http://www.emacswiki.org/emacs/GnusGmail
配置
现在看一下我的配置文件~/.gnus
(setq user-full-name "Dean Chen")
(setq user-mail-address "csfreebird@gmail.com")
;;;;;;;;;;;;;;;;;;;;
;;自动显示图片
;;;;;;;;;;;;;;;;;;;;
(auto-image-file-mode)
(setq mm-inline-large-images t)
(add-to-list 'mm-attachment-override-types "image/*")
(setq gnus-select-method
'(nnimap "gmail"
(nnimap-address "imap.gmail.com")
(nnimap-server-port 993)
(nnimap-stream ssl)))
(setq message-send-mail-function 'smtpmail-send-it
smtpmail-starttls-credentials '(("smtp.gmail.com" 587 nil nil))
smtpmail-auth-credentials '(("smtp.gmail.com" 587
"csfreebird@gmail.com" nil))
smtpmail-default-smtp-server "smtp.gmail.com"
smtpmail-smtp-server "smtp.gmail.com"
smtpmail-smtp-service 587
gnus-ignored-newsgroups "^to\\.\\|^[0-9. ]+\\( \\|$\\)\\|^[\"]\"[#'()]")
我的~/.authinfo文件:
machine imap.gmail.com login csfreebird@gmail.com password your_pwd port 993
machine smtp.gmail.com login csfreebird@gmail.com password your_pwd port 587
好了,现在介绍如何使用。
启动gnus后,会进入Group Buffer看到Gmail里面的目录。
提醒,使用gnus后有个副作用是web版本的gmail里面很多邮件被标记未unread.
Group Buffer的操作
Enter键进入某个Group
U键是不订阅,这些和Gnus常规操作一样,U标记的目录将不会显示。
A A可以显示所有目录,包括U标记的目录。
GG可以用来查找g 检查新email
如果想检查一下有没有新Email,将光标停留在Inbox上,按g键。
设置某个group所有邮件都显示,移动到某个group上,按G p,然后添加下面一段:
((gnus-use-scoring nil)
(expiry-wait . 2)
(display . all))
按下Ctrl- c Ctrl-c保存。这样所有的email都不会被隐藏了。
Summary Buffer的操作
d键 标记邮件为已读,前面会出现r. 标记
R键 回复邮件,带原件内容, 注意,内容必须写在下面一行文字的后面,如果在之前写,邮件内容将会编码成无法阅读的内容。
--text follows this line--
r键 回复邮件,不带原件内容
创建新邮件,用a
放弃该邮件,C-c C-k
C-c C-c 发送邮件。
设置所有当前Summary Buffer中的email为已读 M C-c 然后每个email前面会出现C标记。注意,Ubuntu下M被用于激活搜索框,所以这个快捷键暂时还用不了。
如果已经在summary plugged缓冲区,g代表打开光标所指的email,作用等同与Enter键。
q 可以用来退回到某个文件夹(Group Plugged)。
/ o 用来查看old email, 因为有些不重要的email阅读过后,再次进入目录默认是看不到的。
/ N 用来检查是否有新email
email排序
在summary plugged中,C-c C-s C-d是按照日期排序,最新的email出现在最下方,这是默认排序方式。
C-c C-s Enter C-d是按照日期倒排,最新的email出现在最上方,和gmail的网页版本很像。
C-u space 查看所有email
Enter键进入查询有时候会看不到一些过去已经阅读的Email,所以可以用C-u space 来查看所有Email。
附件问题:
如果有附件,email正文最后会有一个连接,光标移动到那一行,然后回车,就会提示下载。有时候附件是中文,直接按回车不能保存,需要按o键另存为。
如果发送邮件时要添加附件,按Ctr-c 回车 然后f。
如果Email内容是HTML代码,可以将光标移动到该Email的Summary上,然后按K H,Gnus会将Email保存成HTML文件,然后打开外部浏览器浏览本地的HTML文件。
Emacs 24可以直接显示HTML内容。上面的操作一般不再需要。
最后推荐一篇写得比较全的文章:
http://visayafan.com/Coding/Lisp/EmacsGnus.html
享受生活吧。