以前也知道mutt可以利用hook对特定情况特殊处理, 但是一直没需求, 直到上个月订阅了中文内核邮件列表.

这个列表会在邮件最后放一段文字, 所以发PGP签名的邮件就会失败. 很明显, 签名就是保护邮件正文不被修改的, 但这个邮件列表就是要改你的邮件正文, 自然不行. 问题在于我喜欢设置为默认自动签名, 所以每次给这个邮件列表发信就得手动改PGP为Clear, 哪次忘了改? 好吧, 你的回复就消失无踪了.

好在强大的mutt总是能满足我的各种需求, 想要默认签名, 但是发给中文内核列表的不签? 没问题.

下面是配置:

send-hook ~A "set pgp_autosign"
send-hook "~C linux-kernel@zh-kernel.org" "set nopgp_autosign"

解释一下, 第一句设置默认情况为自动签名, 第二句匹配所有在To:或者Cc:中包含linux-kernel@zh-kernel.org的发送或者回复邮件, 此时取消自动签名.

===============无聊的分割线===============

刚写到这里, 又想到了hook的另一个应用: 我的mutt是配合内置imap的, 绑定了d为移动到Gmail的Trash, 但是如果你要删除Trash中的邮件, 就得再绑定一个键(例如D)为删除, 很麻烦. 理想情况是在别的文件夹中绑定d为移动到Trash, Trash中绑定d为删除. 这个实现起来依然轻松, 可以利用folder-hook.

直接上配置:

folder-hook . 'macro index,pager d "=[Gmail]/Trash" "Mark message as trash"'
folder-hook 'Trash' 'bind index,pager d delete-message'

mutt实在是强大的过份, 想怎么玩怎么玩, 向mutt致敬!