用Emacs接收Exchange邮件

基本思路,首先安装DavMail server版本,将exchange服务转换成标准服务,比如smtp, pop3, imap。

然后使用Emacs的mu4e连接DavMail的imap服务。

如何安装DavMail server请参考我之前的文章,已经做了更新:

DavMail server版配置

因为有了imap服务,可以采用我之前写的使用gnus访问gmail的方式,这样在emacs中就可以收邮件了。不过我决定尝试一种新的方法mu4e. 据说这个是很好的。

安装方法参考

http://www.djcbsoftware.nl/code/mu/mu4e/Installation.html#Installation

offlineimap下载邮件

使用之前需要先用offlineimap通过davmail server将公司邮箱中的邮件下载到本地。主要是需要配置一个文件~/.offlineimaprc

http://www.djcbsoftware.nl/code/mu/mu4e/Gmail-configuration.html#Gmail-configuration

[general]
accounts = LeTV
maxsyncaccounts = 3

[Account LeTV]
localrepository = Local
remoterepository = Remote

[Repository Local]
type = Maildir
localfolders = ~/mail

[Repository Remote]
type = IMAP
remotehost = $dav_mail_server
remoteport = 1143
remoteuser = $your_account, no @
remotepass = $your_pwd
ssl = false
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
maxconnections = 1
realdelete = no

注意

1. 公司邮箱中自定义目录最好没有中文名称,否则运气不好会报错

2. 要创建本地目录 ~/mail

3. maxcoinnections 只能设置为1, 大于1的我都遇到报错,只能慢慢下载了

好,然后在~目录下,运行命令

offlineimap

我的邮件比较多,1万多封,5.1GB,等了一个晚上终于下载完成了。

索引本地邮件

好,现在邮件都在本地~/mail目录下了,来建立索引吧。

$ mu index -m ~/mail
indexing messages under /home/dean/mail [/home/dean/.mu/xapian]
- processing mail; processed: 11625; updated/new: 11625, cleaned-up: 0
mu: ignoring because bigger than 50000000 bytes: /home/dean/mail/INBOX/cur/1416665450_0.29886.dean-Aspire-V7-481G,U=5238,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
/ processing mail; processed: 14550; updated/new: 14550, cleaned-up: 0
mu: ignoring because bigger than 50000000 bytes: /home/dean/mail/INBOX/cur/1416671339_0.29886.dean-Aspire-V7-481G,U=9646,FMD5=7e33429f656f1e6e9d79b29c3f82c57e:2,S
/ processing mail; processed: 23550; updated/new: 23550, cleaned-up: 0
mu: ignoring because bigger than 50000000 bytes: /home/dean/mail/Sent/cur/1416682079_0.29886.dean-Aspire-V7-481G,U=1719,FMD5=7f8c0283f16925caed8e632086b81b9c:2,S
/ processing mail; processed: 24750; updated/new: 24750, cleaned-up: 0
cleaning up messages [/home/dean/.mu/xapian]
| processing mail; processed: 24807; updated/new: 0, cleaned-up: 0
elapsed: 1 second(s), ~ 24807 msg/s
/ processing mail; processed: 24807; updated/new: 0, cleaned-up: 0
elapsed: 191 second(s), ~ 129 msg/s

配置emacs mu4e

在~/.emacs.d/init.el文件中,添加如下配置:

;; the exact path may differ -- check it
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/mu4e")
(require 'mu4e)


(setq mu4e-maildir "~/mail")
(setq mu4e-drafts-folder "/Drafts")
(setq mu4e-sent-folder  "/Sent")
(setq mu4e-trash-folder  "/Trash")

;; don't save message to Sent Messages, Gmail/IMAP takes care of this
(setq mu4e-sent-messages-behavior 'delete)

;; setup some handy shortcuts
;; you can quickly switch to your Inbox -- press ``ji''
;; then, when you want archive some messages, move them to
;; the 'All Mail' folder by pressing ``ma''.

(setq mu4e-maildir-shortcuts
      '( ("/INBOX"              . ?i)
        ("/[LeTV].Sent Mail"  . ?s)
        ("/[LeTV].Trash"      . ?t)
        ("/[LeTV].All Mail"    . ?a)))

;; allow for updating mail using 'U' in the main view:
(setq mu4e-get-mail-command "offlineimap")

;; something about ourselves
(setq
 user-mail-address "[email protected]"
 user-full-name  "Dean Chen"
 message-signature
 (concat
  "Dean Chen\n"
  "Email: [email protected]\n"
  "Blog: blog.csdn.net/csfreebird\n"
  "Big Data Tech Director of LeTV.com"
  "\n"))

;; sending mail -- replace USERNAME with your gmail username
;; also, make sure the gnutls command line utils are installed
;; package 'gnutls-bin' in Debian/Ubuntu

(require 'smtpmail)

;; alternatively, for emacs-24 you can use:
(setq message-send-mail-function 'smtpmail-send-it
    smtpmail-stream-type 'starttls
    smtpmail-default-smtp-server "$dav_mail_server"
    smtpmail-smtp-server "$dav_mail_server"
    smtpmail-smtp-service 1025)

;; don't keep message buffers around
(setq message-kill-buffer-on-exit t)

;;----------------------------------------------------------
;; ---- END Email client ----
;;----------------------------------------------------------
(put 'erase-buffer 'disabled nil)

然后启动emacs, M-x 后运行命令: mu4e,看到如下画面:

用Emacs接收Exchange邮件

相关推荐