Emacs 新闻组 之三 收发Gmail

来源:互联网 发布:1024最新 知乎 编辑:程序博客网 时间:2024/05/01 11:23

我的工作生活重度依赖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 993machine smtp.gmail.com login csfreebird@gmail.com password your_pwd port 587


好了,现在介绍如何使用。


启动gnus后,会进入Group Buffer看到Gmail里面的目录。

提醒,使用gnus后有个副作用是web版本的gmail里面很多邮件被标记未unread.

Group Buffer的操作

显示Group的例子

     100: nnimap+gmail:csdn     100: nnimap+gmail:cml     101: nnimap+gmail:CppCMS     191: nnimap+gmail:INBOX     103: nnimap+gmail:bank     197: nnimap+gmail:[Gmail]/All Mail     104: nnimap+gmail:[Gmail]/Sent Mail       5: nnfolder+archive:sent.2014-04      10: nnfolder+archive:sent.2014-03       9: nnfolder+archive:sent.2014-02*      0: CppCMS   26821: INBOX   27864: [Gmail]/All Mail*      0: bank     608: cml*      0: csdn       1: nndraft:drafts
其实只要看nnimap+gmail: 开头的Groups即可。其他的可以直接忽视。104: 代表里面有104个未读邮件。
如果某个组里面有做了标记的邮件,前面会出现*
http://www.gnus.org/manual/gnus_17.html#SEC17

进入某个Group

Enter键进入某个Group

C-u Enter键更好,因为会显示已读的邮件。

订阅或者不订阅

U键是不订阅,这些和Gnus常规操作一样,U标记的目录将不会显示。

显示所有Group

A A可以显示所有目录,包括U标记的目录。

刷新Group

只要按下g即可


查找邮件

GG可以用来查找

g 检查新email

如果想检查一下有没有新Email,将光标停留在Inbox上,按g键。

设置某个group所有邮件都显示,移动到某个group上,按G p,然后添加下面一段:

((gnus-use-scoring nil) (expiry-wait . 2) (display . all))
按下Ctrl- c Ctrl-c保存。这样所有的email都不会被隐藏了。


标记当前组邮件为已读

c 即可,据说也可以用在Summary Buffer中。

Summary Buffer的操作

标记为已读

d键 标记邮件为已读,前面会出现r. 标记

如果直接按Ret键打开邮件,会出现R. 标记,暂时不明白R.和r.的区别是什么?

设置所有当前Summary Buffer中的email为已读 M C-c 然后每个email前面会出现C标记。注意,Ubuntu下M被用于激活搜索框,所以这个快捷键暂时还用不了。


问题:

这些操作之后,用浏览器访问Gmail,发现邮件仍然是未读状态。


显示已读邮件

C-u M-g

这个非常重要,默认GNUS不显示已读邮件其实非常不方便。

不过这个仍然受到一次打开数目的限制,所以有时候还需要用 / o 命令。

感觉这个地方就是不方便。


打开邮件

Ret键

如果已经在summary plugged缓冲区,g代表打开光标所指的email,作用等同与Enter键。


回复邮件

R键 回复邮件,带原件内容, 注意,内容必须写在下面一行文字的后面,如果在之前写,邮件内容将会编码成无法阅读的内容。

--text follows this line--

r键 回复邮件,不带原件内容


Reply to All 是通过按下两个键完成的:S + W/w

如果W则带原件内容,如果w则不带原件内容。


创建新邮件

用a


放弃正在编写的邮件

C-c C-k


发送邮件

C-c C-c 发送邮件。


退回到Group Plugged

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。


过滤

主要参考官方文档:http://www.gnu.org/software/emacs/manual/html_mono/gnus.html#Limiting

/ + a 然后输入author的名字,比如facebook,可以快速的将非facebook发送的email过滤掉

/ + s 用来过滤subject

/ + w 取消当前过滤


转发邮件

C-c C-f 即可。

也可用# 标记多个email,然后用C-c C-f一次转发。

附件

发送附件,用快捷键C-c C-a, 然后回答几个问题,附件路径,描述信息等。disposition用默认的attachment即可。


接收附件,email正文最后会有一个链接,光标移动到那一行,然后回车,就会提示下载。有时候附件是中文,直接按回车不能保存,需要按o键另存为。

如果发送邮件时要添加附件,按Ctr-c 回车 然后f。

如果Email内容是HTML代码,可以将光标移动到该Email的Summary上,然后按K H,Gnus会将Email保存成HTML文件,然后打开外部浏览器浏览本地的HTML文件。

Emacs 24可以直接显示HTML内容。上面的操作一般不再需要。



推荐阅读

http://blog.binchen.org/?p=403

http://visayafan.com/Coding/Lisp/EmacsGnus.html


享受生活吧。




原创粉丝点击