又一个邮件客户端:Wander Lust


#1

一开始我用的是Mutt,尝试过Gnus,但是它的Maildir支持比较奇怪。也试过Mew,但是发现IMAP对我来说不够使用。后来还是选择在Emacs中用Notmuch。mu4e和Notmuch是差不多同一种东西,而且装起来更麻烦一点。 但是Notmuch终究只是个搜索引擎,用来读邮件还是有些不够用。 然后我在Planet Emacsen看到有个GNUS的教程里提到了 Wander Lust

一开始差点没上手。不过它的配置居然不是用 Lisp而是unix-config!!!而且纯 Lisp实现IMAP取信速度也很快,配置多个邮箱也很方便。凭心论可以拿来和 mutt 比了。以后就用它了!

最后安利个我写的文章:


没有什么用的技巧 - 在邮件中显示你的头像
谁有在 Mac 上面使用 Emacs 作为邮件客户端的经验?
Mu4e Layer配置说明与README翻译
#2

最近仔细读 Manual 的时候发现 WanderLust 已经内建支持用 notmuch 或者 mu (也就是mu4e的后端)作为邮件搜索引擎了,果然是最强的邮件客户端(我自己封的)。


#3

确定不是和gnus 类似的老古董? notmuch emacs 看邮件。有tag 标记。还可以用afew 工具 和 基于文件夹的服务端同步。还特别快:joy:。 我觉得挺好。


#4

确定不是和gnus 类似的老古董

这个项目最近一次 commit 是20天前,还算活跃,只是可能在国内有点小众。 mu4e 的作者参考了 notmuch 的后端和 WanderLust 的前端。现在 WanderLust 也反过来支持 mu 做后端了,很明显 WanderLust 还算与时俱进的。 当然没有后端也能正常使用,只是速度有点不够。这个原生也支持 Mark 的概念,和 tag 类似。而且同时支持 mutt 风格的 score。

我本来是用 mutt+msmtp+getmail+procmail+notmuch 收几个重要邮箱,但是别的邮箱因为没什么重要的邮件是直接用网页版。。notmuch 那个Emacs界面在 Spacemacs 上似乎有bug,按q直接退出整个界面而不是返回hello buffer,用起来很不爽,我还是更习惯直接用 Mutt 读信,用helm-nomuch作为检索界面。

鉴于 WanderLust 对 MailDir 的支持比 Gnus 和 Mew 都好上不知道多少,我才成功转到 Emacs 邮件界面上,之前用网页版的邮箱能用 IMAP 同步邮件。之前 Mutt 用的工具链也全都可以继续用。以及用 MailDir 的时候 WanderLust 也不比其他邮件客户端慢。

基于文件夹的服务端同步

是指offlineimap?我还在用mutt的时候,对我来说用这个就表示不能用 procmail (这个的文档同样很稀缺)了,需要一个个邮箱设置过滤规则。WanderLust 本身就以内建 IMAP 速度快为特色,甚至不需要其它依赖就能收取 IMAP 到本地 MailDir。当然也支持收取 POP,不过getmail可以用launchd或者crontab之类定时取信。 offlineimap 当然也可以用。

正是因为不吝于发掘并整合其他邮件客户端的优秀特性,其它邮件客户端能做到 WandeLust 都能做(除了之前提到的,还支持Gnus的 RSS,NNTP,w3m新闻,Mew的自动邮件过滤分类,定期删除),而它有的功能却没有别的邮件客户端能全部实现。 当然,这样一个强力的邮件客户端带来的后果是稀缺的文档和复杂的功能。比如它专门搞了个包来处理MIME,结果加个附件还要指定附件类型和编码,害得我还要补一补MIME的知识,不像 notmuch 之类的,一个函数就能搞定。

所以无法否认这是一个极其优秀的重量级邮件客户端,然而这同样不是一个适合所有人的邮件客户端。我承认和Emacs一样,WanderLust 折腾的代价很高,但是折腾完了以后很值。


#5

那么需要写点文档吗? 我在策划用 Sphinx 写它的使用文档。


#6

可以给 Wanderlust 的主要组件 elmo 做个 index。


#7

我也来贴一贴用 wanderlust 配置163邮箱

163Mail {
   %/INBOX:mailaccount/clear@imap.163.com:993! "收件箱"
   %/已发送:mailaccount/clear@imap.163.com:993! "已发送"
   %/草稿箱:mailaccount/clear@imap.163.com:993! "草稿箱"
#   %/订阅邮件:mailaccount/clear@imap.163.com:993! "订阅邮件"
   %/已删除:mailaccount/clear@imap.163.com:993! "已删除"
}

有两个问题想问一下大佬。

  1. 在 inbox 里面删除邮件的时候想 refile 到 %/已删除:mailaccount/clear@imap.163.com:993! 这个文件夹,而不是 ~/Mail/trash 文件夹,大佬有什么思路吗? wl-dispose-folder-alist 这个变量研究了一下,没搞太明白。
  2. 怎么编辑已经存在的 draft 啊,然后发送啊?我用 emacs 直接打开草稿然后发送的话,提示 mime-edit-preview-message: Search failed: "--text follows this line--",但是在wl里面新建 draft 发送就可以。

#8

wl-trash-folder

The initial setting is ‘+trash’. It is the wastebasket folder. If you changed this variable, you had better restart Wanderlust.

當然是要用 WL 打開啊。


#9

第二个问题按E就可以了,读文档还是不够仔细啊。 第一个问题是我没有描述清楚,我的意思是多账号的情况下,删除时 refile 到 各自账号下的 transh,比如那个 %/已删除:mailaccount.....文件夹,而不是统一单一的 trash folder


#10

http://wanderlust.github.io/wl-docs/wl.html#index-wl_002ddispose_002dfolder_002dalist

wl-dispose-folder-alist

This list determines disposition of messages with disposal marks. Each item in the list is a folder and destination; you can specify any one of the following in the place of destination:

remove or null : deletes the messages instantly.

string : moves the messages to the specific folder.

trash or others : moves the messages to wl-trash-folder

.d Put disposal mark on the message at the current cursor point. The result of disposal is controlled by wl-dispose-folder-alist , refiled to wl-trash-folder by default. ( wl-summary-dispose ) See Mark and Action.


#11

就是这个,我试着写了几个,都没有用,大佬有空的时候帮忙看一下呗! 我写的是:

(setq wl-dispose-folder-alist  '(("^@" . "%/已删除:mailaccount/clear@imap.163.com:993!")))
;; or
(setq wl-dispose-folder-alist  '(("^@163.com" . "%/已删除:mailaccount/clear@imap.163.com:993!")))
;; or
(setq wl-dispose-folder-alist  '(("mailaccont@163.com" . "%/已删除:mailaccount/clear@imap.163.com:993!")))

一直学不会 elisp 的正则表达式。


#12
"^%.+@imap.163.com:993!"

#13

大佬太强了吧


#14

叹号是啥意思


#15

~/.folder 的格式。


#16

大神,如果想加的签名档有各种格式怎么办,初步考虑html。

从 outlook 导出了一个html格式的签名档,然后

(setq wl-template-alist
      '(("xxxxx"
        (bottom-file . "~/signature.html")))

这种尝试当然是失败了,求指点一下啊

ps:rtf?


#17

大神没有时间啊。

下班熬夜看了一下,简化了一下 mime-edit-insert-file 函数:

(defun my-insert-signature (file)
  "Insert a message from a file."
  (mime-edit-insert-tag "text" "html" (mime-edit-insert-file-parameters '(("charset" . "gb2312") ("name" . file)) file))
  (mime-edit-insert-binary-file file "quoted-printable"))

(setq wl-template-alist
    ..... . ......
    (bottom . (my-insert-signature "~/signature.html"))
    ..... . ......)

在电子邮件的签名档格式比较复杂的时候想怎么插入就怎么插入


#18

试了一下, 配合davmail 能收 exchange 邮件了, 但是, 卡的懵逼. 一共也才 8000 多邮件.


#19

很多企业内Exchange服务器也会同时开放IMAP和POP3接口,你可以试一下直接连接。Davmail的确慢。


#20

应该不是收信的问题. 整个信件的 summary 已经下载了, 结果进入 summary, 光标移动什么的, 很卡.