我画了一个mu4e配置理解图,帮助我自己快速回忆

+---------------------------------------------------------------------------------------------+        
|                                    GPG                                                      |        
|GPG command:gpg2 --full-generate-key)---> generate gpg key pair(public key and private key)  |        
|                                                           |                                 |        
|                                                           |                                 |        
|                                                           v                                 |        
|                        GPG key ID (you need to s tup a password for the Key pair ID)        |        
+---------------------------------------------------------------------------------------------+        
                             |                                                                         
                             v                                                                         
                                                                                                       
              pass init 'AAAA2222CCCC4444'                                                             
                      #With your GPG key ID (AAAA2222CCCC4444) you can now initiate your pass datastore
                      +------------------+                                                             
                      |  pass datastore  |                                                             
                      +---------+--------+                                                             
                                |                                                                      
       Get                      |         Get                                                          
password 1 from datastore    <--+---->  password2 (Business/cheese-whiz-factory)                       
(Business/office-email-account)                                        |                               
                                                                       |                               
               |                                                       |                               
               |                                                       |                               
               |        +-------------------------------+              |                               
               |        | ~/.mbsyncrc:                  |              |                               
               +------->| email account1, email account2|   <----------+                               
                        |                               |                                              
                        |          mbsync               |                                              
                        |      +------------+           |                                              
                        |      | database   |           |                                              
                        |      +-----^------+           |          +-->  send mail: msmtp              
                        +------------+------------------+          |                                   
                                     |                             |                                   
                                     |                             |                                   
 +-----------------------------------+-----------------------------+----------+                        
 |           +-> index  -------------+-------------------------+   |          |                        
 |     mu -> |                                                 |   |          |                        
 |           |   +---------------------------------------------+---+------+   |                        
 |           +-->|/usr/share/emacs/site-lisp/mu4e/             |   |      |   |                        
 |               |        |                                    |   |      |   |                        
 |               |        |                                    v   |      |   |                        
 |               |        |                 +---------------------------+ |   |                        
 |               |        |                 |      ~/.msmtprc           | |   |                        
 |               +  (use-package mu4e) <--  |mu4e-context    account 1  | |   |                        
 |               |         ^                |                           | |   |                        
 |               |         |                |                account 2  | |   |                        
 |               |         |                |                           | |   |                        
 |               |     M-x mu4e             |                ...        | |   |                        
 |               |                          +---------------------------+ |   |                        
 |               +--------------------------------------------------------+   |                        
 +----------------------------------------------------------------------------+                                             
1 个赞

用了很长时间的 mu4e,最后转 notmuch 了。

转 notmuch 主要有两个原因:

  1. mu4e 对 threading folding (就是折叠同一个主题的多个邮件)支持不好,官方在 0.12 以后自带了一个实现,但是这个实现并不稳定,很多 overlay 计算不对导致整个界面显示崩了的情况。我在 0.12 发布以前也写了一个实现,比官方自带的稳定,但是我是用了一个很 stupid 的方式实现的。每次界面操作结束以后都整个刷新重算一次 overlay,才能保证显示界面不崩。而且因为 mu4e 操作是异步的,我还不知道它什么时候操作结束,所以我是用了一个 timer, 估摸等 timer 结束的时候异步操作应该就会结束。notmuch 就没有这个问题,自带主题折叠。

  2. mu4e breaking change 太多了,每次大版本更新都要改一堆 interactive-command 的名字,还有各种接口,symbol 的名字。用 evil-collection 基本上版本更新一次就要改一次 API,交过一次 evil-collection 的 PR 实在是心累。

最终下决心让我切 notmuch 的是有一次版本更新导致 org-msg 被 breaking change 了,导致我没办法写 outlook 格式的 html 邮件 (发 professional 场合的邮件这个还是很重要的)。

换了 notmuch 以后感觉神清气爽。

当然这么说,但是 mu4e 确实比 notmuch 上手容易,除了我上面列的问题之外,也还是很好用的。还是很感谢 mu4e 相对简单的配置让我迅速上手搞定了 emacs 的邮件管理。

2 个赞