为什么要用Mutt?
这个世界已经有了成百上千的漂亮邮件客户端,为什么还要用命令行里的?
其实说什么功能都没用。说到本质上,其实是一种Geek精神,一种爱折腾的精神,一种Customizability的精神。就像明明有WhatsApp,还要用IRC一样的精神;明明有Finder,还要用Ranger的精神。
在终端里待久了,会比较烦GUI,所以不管什么软件都会寻求终端的替代方案。
对于这个需求来说,在Linux的世界里,似乎就只有一个选择:Mutt。
Mutt的可配置性,强如Vim。配置起来也和Vim差不多,有专门的~/.muttrc
供你配置软件本身。
需要理解的是:Mutt本身是一个框架而已。收件、发件、编辑邮件等功能,是要通过搭配不同的程序来做到的。
Mutt的模块搭配方案
就像穿衣搭配一样,收件发件过滤邮件转发邮件各种功能都有很多种程序可以用,mutt怎么搭配呢?
常用选项有这些(User/Transport/Delivery):
- MUA 收件:
fetchmail
或getmail
或OfflineIMAP
- MTA 发件:
sendmail
或msmtp
或postfix
。其中msmtp
兼容强,postfix
对国内不友好 - MDA 分类:
procmail
或maildrop
- 邮件编辑:VIM。
参考邮件代理(功能分类):Email agent (infrastructure) - Wikipedia)
一般搭配是:
- 老式搭配:mutt + getmail + sendmail + procmail
- 新式搭配:mutt + fetchmail + msmtp + maildrop
但是maildrop不支持Mac,而procmail比较通用一点。所以这里我们用:mutt + fetchmail + msmtp + procmail
安装:
# Mac
$ brew install mutt fetchmail msmtp procmail
# Ubuntu
$ sudo apt-get install mutt fetchmail msmtp procmail -y
Mutt或各个写协作程序在配置前都是不能使用的,学习曲线还是比较陡峭的,所以要做好准备去花好一段去了解和学习各个部件。
大概的配置流程是:
- 配置收件:
~/.fetchmailrc
- 配置过滤:
~/.procmailrc
- 配置发件:
~/.msmtprc
- 配置mutt框架本身:
~/.muttrc
注意:初学过程中,不要一上来就配置mutt。最好是先从各个部件开始:收件->过滤邮件->阅读邮件->发件->mutt界面
,按照这种顺序。
配置参考:
参考Arch Wiki:Mutt (极详细,但对人类不友好)
参考Youtube:Mutt - Email for everyone (nerds like me)
收件:配置Fetchmail
Fetchmail是由著名的《大教堂与集市》作者 Eric Steven Raymond 编写的。
Fetchmail是一个非常简单的收件程序,而且是前台运行
、一次性运行
的,意思是:你每次手动执行fetchmail
命令,都是在前台一次收取完,程序就自动退出了,不是像一般邮件客户端一直在后台运行。
注意:fetchmail只负责收件,而不负责存储!所以它是要调用另一个程序如procmail
来进行存储的。
fetchmail的配置文件为~/.fetchmailrc
。然后文件权限最少要设置chmod 600 ~/.fetchmailrc
参考:Using Fetchmail to Retrieve Email
比如我们要设置多个邮箱账户同时收取,那么配置如下:
poll pop.AAA.com protocol POP3