必威电竞|足球世界杯竞猜平台

mutt
來源:互聯網

mutt是Linux下的一個email程序。Mutt顯然是一個Unix的郵件程序,它跟一般的Windows郵件程序不同,它不是一個包羅萬象的大雜燴。你甚至會發現它根本不直接發出郵件,它從來不自己編輯郵件,它從來不自己對郵件進行加密和數字簽名……Mutt更像一個文件管理器,只不過它管理的是email。它的功能是借助各個最強大的程序來實現的。這符合unix的設計思想。

特點

超強的信件分類功能

你可以設置幾乎任意的條件來從一堆信件里找到你所需要的那封。比如,你可以說:“只顯示一個月之類,不是清華大學發來的,內容包含‘光盤’兩個字的信件”,“把從fvwm郵件列表一個星期以前發來的,而且還沒有看過的信件全部移到叫old-fvwm的信箱”……

信件打分排序功能

你可以給你的信件打分,信件最后的得分就是它的這些分數相加的結果。

幾乎任意條件的彩色設置

可以隨意綁定熱鍵

這個功能類似Emacs。你可以把幾乎任意的功能綁定到鍵盤。

設置條件掛鉤

可以對滿足不同條件的信件,信箱采取不同的設置。比如,對于用來收郵件的那些信箱,顯示郵件時只顯示from,date,subject,x-mailer這幾個郵件頭,而對sent-mail信箱還顯示to這個郵件頭;發給家人,朋友的信件都存到一個特別的信箱中保存。

批量郵件處理

可以把一些郵件作上標記(tag),然后對它們進行同意操作,比如刪除,存到其它文件,刪除附件,……

任選編輯器

用一個強大的編輯器來編輯你的email你才能高效的完成編輯。一般email客戶端都是用的自己內嵌的編輯器,這些編輯器一般功能很弱。mutt并沒有試圖自己寫一個編輯器,因為它明顯不可能超過VIM和Emacs,所以mutt可以讓你自己選擇你喜歡的編輯器,它會去調用它,并且設置很多方便編輯email的參數。編輯器編輯完畢后mutt會從編輯器得到編輯好的文本,然后你可以加附件什么的。我現在在mutt里使用Emacs編輯器。

高級的MIME支持

Mutt不像一般的email程序那樣直接支持打開某些種類的附件。因為附件的種類實在太多,一個email客戶端沒有可能自己實現所有的功能。所以Mutt提供了.mailcap的設置。

支持PGP加密

Mutt可以利用GnuPG這樣的程序來對信件進行PGP加密和數字簽名。別人可以用你的公用密鑰給你發一封只有你才能看到的信件。也可以用私有密鑰給信件“簽名”,收信人可以用公布的公鑰驗證這封信。

基本配置

開始使用時需要的一些必要的配置。

1.alternates

這個變量應該設置為一個正則表達式,它是你有可能收到信件的地址。

這個變量有助于Mutt顯示郵件的地址特征。一般Mutt會在index中顯示幾種不同的郵件地址特征,它們是由$to_chars變量指定的。

2.to_chars

一般$to_chars的定義為"+TCFL".

*""(空):表示這封郵件不是給你的,也就是說To:和Cc:Bcc:都沒有你的地址,很多轉發的郵件,未確認的郵件列表郵件,垃圾郵件都有這個特征。

*+:表示你是收件人(To:是你的地址之一),而且是唯一的收件人。

*T:表示你是收件人(To:包括了你的地址之一),但是你不是唯一的收件人。這是一封群體信件。

*C:表示你的地址出現在CC:,但是你不是唯一的被抄送的人。

*F:表示這封郵件是你發出去的。

*L:表示這是一封你已經加入的郵件列表寄來的。

3.index_format

這是一個格式字符串,用來控制你的index的列表顯示。它的缺省定義是:

setindex_format="%4C%Z%{%b%d}%-15.15L(%4l)%s"

顯示出來就是這個樣子:

index-original

這里有一個簡單的對應關系,%4C表示4位數的序號,%Z是郵件狀態,你看到那個"r"了嗎?也就是說我已經回了這封信。%Z還包含那個"T",也就是說這封信不只是寄給我一個人的,我爸爸每次寄信都會CC他自己一份:)%{%b%d}是日期格式,它是由strftime()函數的格式定義的。這里%b就是根據當前的locale設置的月份簡稱,“12月”。%d就是十進制表示的每月的日號,“31”。后面的……你自己看看manual吧,我不羅嗦了。

4.mailboxes

指定你有那些信箱文件。當你按"c"切換信箱時,再按Tab鍵,這些信箱就可供你選擇。

mailboxesMailboxsent-mail

5.header

這是一個bool型變量。它表明你在回信時引用原文是否加入原文的郵件頭。

setheader=no

6.quit

mutt-quit

可以設置為yes,no,ask-yes,或者ask-no.這是說,當你按q退出時,是否提示你(ask-yes,ask-no),還是直接就退出了(yes),還是根本不理你(no)。

setquit=ask-yes

7.auto_view

那些類型的附件是允許直接通過.mailcap瀏覽的?

auto_viewtext/HTML

8.move

這也是一個提示性變量。它是確定當你退出時,是否提示你把信件從spool移動到的mbox文件。

setmove=no

9.ascii_chars

當Mutt用thread方式顯示時,是否用純ascii表示樹狀列表。

setascii_chars=yes

如果設置了就是這個樣子:

mutt-ascii

10.include

回信時是否包含原文。

setinclude

11.indent_str

回信的引文之前插入那個符號?

setindent_str=">"

12.my_hdr

設置你自己的郵件頭。

13.打分

新信件+4分,爸爸(w2r007)發來的+2,主題包含“通知”的+2,主題包含“Circulation”+3,已經標記刪除的-5,上次沒有讀的+1,包含“believe”的-10(垃圾廣告!)。

score"~N"+4

score"~fw2r007"+2

score"~s通知"+2

score"~sCirculation"+3

score"~D"-5

score"~O"+1

score"~sbelieve"-10

14.sort

排序方式。可以是

date

date-sent

date-received

from

mailbox-order(unsorted)

score

size

subject

threads

to

幾種方式,每種方式可以在前面加一個"reverse-"前綴表示反方向排序。我一般按分數排序:

setsort=score

15.sort_aux

當用thread排序方式時,我們對各個thread的相對排序順序。

setsort_aux=date

16.pager_stop

如果設置,那么你在pager(就是你看信的內容的窗口里)翻頁時,如果翻到最后,再按往下翻也不會翻到下一封信件。如果不設置就會自動翻到下一封信。

setpager_stop

17.500米口徑球面射電望遠鏡_reply

如果設置,當你按"r"回信時,就不會再提示你輸入回信地址和主題,直接進入編輯模式。

setfast_reply

18.resolve

當你按"t"或者"D"之類的標記操作時,是否自動把光標移動到下一封信件。

setresolve=yes

19.alias_file

當你在index里按"a"為來信者取別名時,使用哪一個別名文件保存這個別名。

setalias_file=/home/wy/.mutt.alias

20.record

你發出的郵件保存到那個信箱文件?比如可以像我這樣每個月發出的信件放在不同的文件里。

setrecord="~/Mail/=sent-mail-`date+%Y-%m`"

21.charset

你的終端支持哪一種編碼的顯示?這個必須和你的終端編碼一樣。

setcharset="gb2312"

22.send_charset

發信時可以使用的字符集。只有當前面的字符集不能正確表示信件內容時才會使用后面的。比如,如果你像下面這樣設置,你的信件如果全是英文,那么信件就會被設置為us-ascii編碼,如果出現了法語字符,那么就會用iso-8859-1,如果出現了漢字就會用gb2312,如果以上都不是,那么就用utf-8。

setsend_charset="us-ascii:iso-8859-1:gb2312:utf-8"

23.wait_key

當外部程序退出時,是否要求用戶按一個鍵才返回。這在察看某些殼層命令輸出時是比要的,否則它們一下就消失了。

setwait_key=yes

24.confirmappend

當你要把信件存到另一個信箱,而這個信箱已經存在時,是否提示附加?

setnoconfirmappend

25.edit_headers

是否把郵件頭也放在編輯器里可以修改?

setedit_headers=no

26.pager_index_lines

當你在用pager看信件時,在index留出多少行顯示郵件列表?

setpager_index_lines=4

比如我留下4行顯示列表,其它的用來顯示正文:mutt-indexpager

27.subscribe

告訴Mutt你已經訂閱了那些郵件列表(mailing-list).這有助于Mutt判斷那些信件是郵件列表轉過來的,避免你錯誤的回復到別人的私人信箱。也避免別人回復到你的私人信箱。

中文FAQ

2.怎樣讓Mutt顯示日期等為中文?

setlocale="zh_CN"

3.發出的信件為什么設置了錯誤的charset?別人的程序不能正確顯示我的中文信件!

把gb2312編碼加到你的send_charset.就像這樣最好:

setsend_charset="us-ascii:iso-8859-1:gb2312:utf-8"

4.收到一些中文信件全部顯示為"???"

這是因為某些email客戶端,比如清華大學的WWW界面客戶端沒有設置字符編碼,你看看郵件頭(按h),是不是有個

Content-Type:text/plain

但是后面沒有說charset="GB2312"?Mutt遇到這種沒有設置charset的郵件就會使用"us-ascii",所以如果你想讓這種信件可以正確顯示,就把"us-ascii"設置為"gb2312"的別名:

charset-hook^us-ascii$gb2312

注意"us-ascii"中間的連字號

5.可是仍然有郵件標題亂碼呢!

看看你的$spool里那個亂碼的信件是不是有類似如下內容:

Subject:=?iso8859-1?B?U29oddCj09HCvDq587Dg09DQwrPJ1LG808jro6E=?=

Chinaren等服務器發出來的信件使用了quoted-printable的subject,而且設置編碼為"iso8859-1",這顯然是錯誤的。

對付這個錯誤的辦法是把iso-8859-1變成gb2312的別名:

charset-hook^iso-8859-1$gb2312

注意"iso-8859-1"中間的連字號

如果仍然有信件亂碼。干脆用

charset-hook.*gb2312

把所有信件都用gb2312顯示。

6.可是這樣設置之后evolution發過來的subject為utf-8編碼的郵件標題亂碼!

那就把不是utf-8的編碼都映射到gb2312:

charset-hook!utf-8gb2312

7.怎樣配置fetchmail?

fetchmail的配置非常簡單。如果只是一個人用的話,可以這樣設置:比如,我在我的$HOME目錄編輯了一個.fetchmailrc:

setdaemon60

pollmails.tsinghua.edu.cn

protocolPOP3

user"wang-y01"

password"wang-y01的密碼"

pollsmth.org

....

....

然后把fetchmail寫到我的shell啟動腳本里:

!psaux|grep-qfetchmail&&fetchmail&

fetchmail啟動后成為一個daemon,每分種幫我檢查所有郵箱里的郵件,收回來,并且轉發到本地信箱。修改上面那個"60"就可以改變檢查時間間隔。

如果不想讓fetchmail刪除服務器上的文件,而且每次只取新的信。就在配置文件里加上:

Keep

uidl

8.我不想用fetchmail,能不能直接收回POP信件啊?

如果你的Mutt編譯時加入了POP功能,那么你可以直接從POP服務器收郵件而不用借助于fetchmail.把類似這些行加入~/.muttrc

setpop_user=wang-y01

setpop_pass="wang-y01的密碼"

setpop_host="pop://mails.tsinghua.edu.cn"

也可以一次性輸入所有內容:

setpop_host="pop://wang-y01:wang-y01的密碼@smth.org"

在Mutt里按一下"G"就可以取郵件了。

9.怎樣處理多個POP3信箱?

如果你有多個POP信箱,你可以設置一些方便的宏把POP信件收到你信箱里。舉個例子,就像我這樣:

macroindex,shredder":setpop_host=\

\"pop://shredder:shredder的密碼@smth.org\"\r\"

macroindex,sk8er":setpop_host=\

\"pop://sk8er:sk8er的密碼@smth.org\"\r\"

macroindex,ts":setpop_host=\

\"pop://wang-y01:wang-y01的密碼@mails.tsinghua.edu.cn\"\r\"

macroindex,g",shredder,sk8er,ts"

這樣,我只要按,shredder就可以收我在smth上shredder的信件,只要按,sk8er就可以收我在smth上sk8er的信件,只要按,ts就可以收mails.tsinghua.edu.cn的信件,只要按,g就可以收取我所有POP信箱的信件了。

10.怎樣直接訪問POP3信箱?

除了上面的方法,你還可以直接訪問POP3信箱。比如,我可以直接按"c"切換到信箱pop://sk8er:sk8er的密碼@smth.org

就可以瀏覽pop的信件了。切換到其它信箱就瀏覽不同的pop。如果你嫌按鍵太多可以自己定義一個宏。這是同步操作,你如果在這個信箱里刪除一封信件,mutt就會刪除你pop3服務器上的信件。你不刪它也不刪。

郵件太多時這樣效率很低,每次都要取所有郵件頭,就像Foxmail的“遠程郵件管理”。所以最好在那種不想取回信件,而想直接刪除垃圾郵件的時候用這個辦法。

11.怎樣處理郵件列表?

參看subscribe命令。

12.我按"d"的時候郵件被直接標記刪除了,怎樣才能把刪掉的信件都移到一個“垃圾箱”呢?

你只要把信件用save-message函數保存到你的垃圾箱,比如~/Mail/Trash,信件會被自動做上"D"(刪除)標志。為了讓"d"可以保存到垃圾箱,你可以把"d"鍵綁定到一個宏。但是如果你要刪除垃圾箱里的郵件,這個宏會再次把垃圾箱的郵件存儲到垃圾箱,產生循環。所以你應該使用folder-hook在垃圾箱里把"d"恢復到原來的delete-message函數,而在其它信箱使用那個宏。

現在你可以用以下設置得到一個“垃圾箱”的功能。第一次按"d"時有可能會被訊問是否建立這個信箱(Trash).

folder-hook.'macroindexd"~/Mail/Trash\r"'

folder-hook~/Mail/Trash'bindindexddelete-message'

13.當收到的郵件的header有很多項目時,我的pager里全都是郵件頭。怎樣才能只看到某些我想看的郵件頭呢?

你可以用ignore忽略你不想看到的郵件頭,如果ignore*,你就可以忽略所有郵件頭。用unignore可以恢復顯示被忽略的郵件頭。所以一個簡單的辦法就是先把所有郵件頭忽略,然后放出你想看的那幾個。

看下面的設置。我的sent.*(發件箱)里只顯示To:Subject:Date:三項。而在其它信箱就顯示From:Subject:X-Mailer:Date:這幾項。

folder-hook."ignore*;unignorefromsubjectX-mailerdate"

folder-hooksent.*"ignore*;unignoretosubjectdate"

你還可以指定郵件頭顯示的順序:

hdr_orderfromtosubjectdate

14.Mutt怎么使用地址簿呢?

你可以用alias來實現一個地址簿。alias命令的形式是這樣的,舉個例子:

aliaswyWangYin<郵箱>

alias是命令,wy是別名,WangYin<郵箱>是一個標準的email地址。這樣,如果你在index里按"m",在To:的提示下輸入"wy",就可以發信給WangYin<郵箱>。

在To:的提示下按Tab就可以顯示聯系人列表,然后你可以移動光標選擇聯系人。

如果你有很多alias要寫,最好把它們寫到另外一個文件,比如叫.mutt.alias.然后在.muttrc里加上:

source~/.mutt.alias

你還可以設置一個變量:

setalias_file=~/.mutt.alias

這樣你在index里按"a",就可以把來信人加入到這個alias文件了。

15.Mutt如何處理HTML附件?

Mutt可以處理任何類型的附件。因為它可以調用合適的程序來處理它們。為了直接在mutt的窗口里顯示HTML,你只需要在~/.mailcap文件加入。

16.Mutt如何處理Worddoc附件。

清華大學總是喜歡發送含有doc附件的通知。真是讓人ft。現在有一個完美的解決方案了:使用wvware把doc轉成HTML嵌入mutt里。

wvHtml--charset=gb2312your.docyour.html

就可以把doc轉成HTML。經測試,能夠正確處理漢字和圖片。

你可以讓mutt調用wvHtml在自己的窗口里直接顯示轉換的doc文檔。只需要在~/.mailcap文件加入:

application/msword;wvHtml--charset=gb2312%s-|lynx--dump-stdin;

nametemplate=%s.html;copiousoutput

auto_viewtext/htmlapplication/msword

這樣你的mutt看一個doc的時候就像這個樣子:

mutt-wvware

17.我想在Mutt里使用Emacs怎么辦?

Emacs是一個非常強大的編輯器,所以你肯定會希望能在Mutt里使用Emacs。你可以選擇兩種方式:

參考資料 >

生活家百科家居網