2007/4

搞定mutt

昨天总算是把mutt搞定了,不过昨天网通掉线,上不了网,今天补上这篇。

其实mutt设置挺简单的,照着网上的文章来没多大问题。我主要再说一下我遇到的一些问题。首先是编码问题,都统一为gb2312,如果有中文的话,因为终端就是gb2312。这还涉及到vi,因为我给mutt 设的编辑器就是vi,在.vimrc里加上下面这句:

set fileencoding=gb2312
.muttrc里有这么几句:

set charset="gb2312" set send_charset="us-ascii:gb2312:utf-8"

以前总以为charset里也要加utf-8之类的,其实不用,那只是指定终端编码。而且也没必要设置什么charset-hook,不过这可能是因为我还没遇到什么更奇怪的编码,呵呵~

还有就是排序的问题。鉴于我订阅了很多邮件列表,所以使用下面的一种排序方式,现在感觉很爽。

set sort=threads set sort_aux=reverse-last-date
再就是邮件列表问题,最好在muttrc里加上subcribe命令。在回复邮件列表时,使用g比r要好,因为g能把cc里的人也能照顾到。

最后就是mutt天生的一个问题,无法收邮件,只能靠别的程序。我用的是fetchmail,但我启用fetchmail的daemon功能,并且在fetchmailrc里设定set daemon 60,但还是没收到邮件!干脆,自己写个shell脚本去跑。代码很简单,如下:

#!/bin/sh

while true; do
        sleep 60
        if fetchmail -d0 ; then
                #cat XXX.wav >/dev/dsp
                mutt
        else
                echo "No mail!."
        fi
done

PS. 你可以把上面的注释去了,弄个*.wav文件做你的铃声!;-p

mutt+fetchmail+procmail

今天试图搞定这三个东西,实在不容易。

从开学到现在还一直是在Opera里收发gmail邮件,人懒了就这样。今天向Andrew提交patch时猛然发现该正式换一下mutt发邮件了,浏览器里有很多不方便的地方,最大的问题就是回复mailing list时不会把这个thread中的人都cc到。于是决定重拾mutt。

首先解决的是编码问题。鉴于xterm用的是gb2312,而邮件有中文的也有英文的,所以决定文件采用utf-8编码,而muttrc设置成us-ascii:gb2312:utf-8。但仍有一个问题没解决,刘洋使用的是evolution,而且还是gb18130这种相对少见的编码,所以他的邮件到现在仍然是乱码!然后就是mbox的问题,~/Mail/目录下有三个文件:from,from_me,sent,mbox,对应muttrc中设置:

set mbox=~/Mail/mbox
set spoolfile=~/Mail/mbox
set record=~/Mail/sent

这弄了半天也终于弄好了。

mutt先到此为止,还有就是procmail和fetchmail的问题。fetchmail可以以daemon的形式运行,可以在fetchmailrc中指定:set daemon 60。不过我试了试 ,发现似乎过了1分钟也没收到什么新邮件。kill掉fetchmail后再fetchmail -d0就马上收到一封!很奇怪。另一种解决方案是用crontab,不过这也有问题,crontab似乎只发送一个通知,而并没有把邮件弄到mutt里,因为我一直没收到邮件。这似乎还牵扯到procmailrc。彻底被搞糊涂了……