Difference between revisions of "Mutt (正體中文)"

From ArchWiki
Jump to: navigation, search
(wikify some external links, use https for archlinux.org)
m (Remove from how to category.)
Line 1: Line 1:
 
[[Category:正體中文]]
 
[[Category:正體中文]]
[[Category:HOWTOs (正體中文)]]
 
 
[[Category:Internet and Email (正體中文)]]
 
[[Category:Internet and Email (正體中文)]]
 
[[en:Mutt]]
 
[[en:Mutt]]
Line 14: Line 13:
  
 
=== 安裝Mutt ===
 
=== 安裝Mutt ===
通過一個簡單的命令 <code>pacman -S mutt</code> 就能安裝 Mutt了。
+
通過一個簡單的命令 {{ic|pacman -S mutt}} 就能安裝 Mutt了。
  
 
==設置 IMAP 方式接收電郵==
 
==設置 IMAP 方式接收電郵==
Line 21: Line 20:
  
 
===設置OfflineIMAP===
 
===設置OfflineIMAP===
首先要啟用Community程式庫,並通過一個簡單的命令 <code>pacman -S offlineimap</code> 來安裝 OfflineIMAP。
+
首先要啟用Community程式庫,並通過一個簡單的命令 {{ic|pacman -S offlineimap}} 來安裝 OfflineIMAP。
現在你要按自己的需要來設置好它。創建一個文件<code>~/.offlineimaprc</code> 並用你中意的編輯器來編輯它。下面是一個配置文件的例示。可按自己的需要來編輯它。  
+
現在你要按自己的需要來設置好它。創建一個文件{{ic|~/.offlineimaprc}} 並用你中意的編輯器來編輯它。下面是一個配置文件的例示。可按自己的需要來編輯它。  
  
<pre>
+
{{bc|1=
 
[general]
 
[general]
 
accounts = myaccount
 
accounts = myaccount
Line 63: Line 62:
 
remotepass = myremotepassword
 
remotepass = myremotepassword
 
# 郵箱的密碼。 -- 當然,像這樣直接列出密碼,是不太安全。所以你要確信該文件只有你才有讀取權限。還有更好的辦法,不過就請自行參看OfflineIMAP的手冊吧。
 
# 郵箱的密碼。 -- 當然,像這樣直接列出密碼,是不太安全。所以你要確信該文件只有你才有讀取權限。還有更好的辦法,不過就請自行參看OfflineIMAP的手冊吧。
</pre>
+
}}
  
 
這是能讓你運行起來的最少設置了。更多高級的特性,請參閱[http://software.complete.org/offlineimap OfflineIMAP的主頁],再返回頭看一看[http://software.complete.org/offlineimap/browser/offlineimap.conf  offlineimaprc註解].
 
這是能讓你運行起來的最少設置了。更多高級的特性,請參閱[http://software.complete.org/offlineimap OfflineIMAP的主頁],再返回頭看一看[http://software.complete.org/offlineimap/browser/offlineimap.conf  offlineimaprc註解].
  
 
現在就快要準備好運行 OfflineIMAP 了。<br>
 
現在就快要準備好運行 OfflineIMAP 了。<br>
創建一個已經在 offlineimaprc 中定義好的目錄,就像這樣: <code>mkdir ~/Mail</code> 。然後運行 <code>offlineimap</code> 。你的電郵就會同步到本地電腦上了。如果出了什么錯,就仔細查看一下錯誤消息。通常 OfflineIMAP 提示的錯誤消息有比較詳盡的文字說明。<br>
+
創建一個已經在 offlineimaprc 中定義好的目錄,就像這樣: {{ic|mkdir ~/Mail}} 。然後運行 {{ic|offlineimap}} 。你的電郵就會同步到本地電腦上了。如果出了什么錯,就仔細查看一下錯誤消息。通常 OfflineIMAP 提示的錯誤消息有比較詳盡的文字說明。<br>
如果能夠成功運行,那么可以啟用 <code># ui = Noninteractive.Quiet</code> 這一行,以關閉提示信息。
+
如果能夠成功運行,那么可以啟用 {{ic|1=# ui = Noninteractive.Quiet}} 這一行,以關閉提示信息。
  
 
===讓 Mutt 配合 offlineimap 收信===
 
===讓 Mutt 配合 offlineimap 收信===
 
若要配合配合 offlineimap 收信,那么本地存儲郵件的方式,只能是 Maildir 方式。
 
若要配合配合 offlineimap 收信,那么本地存儲郵件的方式,只能是 Maildir 方式。
MailDir 的好處在於其格式的通用性和標準化.幾乎每一個 MUA 都能處理 MailDirs ,而 Mutt 當然也支持得很棒。現在用你的編輯器打開 <code>~/.muttrc</code> 並將下面這幾行添加進入:
+
MailDir 的好處在於其格式的通用性和標準化.幾乎每一個 MUA 都能處理 MailDirs ,而 Mutt 當然也支持得很棒。現在用你的編輯器打開 {{ic|~/.muttrc}} 並將下面這幾行添加進入:
  
<pre>
+
{{bc|1=
 
set mbox_type=Maildir
 
set mbox_type=Maildir
 
#設置郵件存儲方式為:Maildir
 
#設置郵件存儲方式為:Maildir
Line 93: Line 92:
 
macro index G "!/usr/bin/offlineimap \n" "Checking mails......"
 
macro index G "!/usr/bin/offlineimap \n" "Checking mails......"
 
#設置一個快捷鍵:G ,來調用 offlineimap 查閱新電郵
 
#設置一個快捷鍵:G ,來調用 offlineimap 查閱新電郵
</pre>
+
}}
  
這是一個最精簡的配置文件了,能讓你訪問你的 Maildir,並在收件箱(INBOX)中檢查新電郵。這個配置也對電郵的郵件頭作了暫存,從而加速郵件的列示過程。也許你的安裝包沒有開啟暫存功能,不過Arch 的安裝包一定是開啟了的。注意這項功能真的對 OfflineIMAP 有相當影響。它總是在從郵件服務器同步電郵。 <code>spoolfile</code> 告訴Mutt從本地哪個目錄來得到新電郵。你可能還想添加更多的 Spoolfiles,例如郵件列表(Mailing List)所在的目錄。或者你想添加其它什么東西,但這就超出了這份文檔的范圍了,還請自行參閱手冊 <code>man mutt</code>
+
這是一個最精簡的配置文件了,能讓你訪問你的 Maildir,並在收件箱(INBOX)中檢查新電郵。這個配置也對電郵的郵件頭作了暫存,從而加速郵件的列示過程。也許你的安裝包沒有開啟暫存功能,不過Arch 的安裝包一定是開啟了的。注意這項功能真的對 OfflineIMAP 有相當影響。它總是在從郵件服務器同步電郵。 {{ic|spoolfile}} 告訴Mutt從本地哪個目錄來得到新電郵。你可能還想添加更多的 Spoolfiles,例如郵件列表(Mailing List)所在的目錄。或者你想添加其它什么東西,但這就超出了這份文檔的范圍了,還請自行參閱手冊 {{ic|man mutt}}
  
當然,我們也最好事先創建好配置文件中的那些郵件儲存目錄。然後就可以鍵入指令: <code>mutt</code> 來收信和閱讀信件了。
+
當然,我們也最好事先創建好配置文件中的那些郵件儲存目錄。然後就可以鍵入指令: {{ic|mutt}} 來收信和閱讀信件了。
  
 
就這樣了。別忘了將每一樣設置都調整到你喜歡的樣子。自己努力解決吧。
 
就這樣了。別忘了將每一樣設置都調整到你喜歡的樣子。自己努力解決吧。
Line 104: Line 103:
  
 
=== 配置 GetMail ===
 
=== 配置 GetMail ===
先安裝[http://pyropus.ca/software/getmail/ getmail]。它在<code>[extra]</code> 程式庫中.
+
先安裝[http://pyropus.ca/software/getmail/ getmail]。它在{{ic|[extra]}} 程式庫中.
 
   pacman -S getmail
 
   pacman -S getmail
現在創建目錄: <code>~/.getmail/</code>。用編輯器打開<code>~/.getmail/getmailrc</code>
+
現在創建目錄: {{ic|~/.getmail/}}。用編輯器打開{{ic|~/.getmail/getmailrc}}
  
這裡有一個例子 <code>getmailrc</code> ,用的是Gmail帳戶。
+
這裡有一個例子 {{ic|getmailrc}} ,用的是Gmail帳戶。
<pre>
+
{{bc|1=
 
[retriever]
 
[retriever]
 
type = SimplePOP3SSLRetriever
 
type = SimplePOP3SSLRetriever
Line 120: Line 119:
 
type = Maildir
 
type = Maildir
 
path = ~/mail/
 
path = ~/mail/
</pre>
+
}}
  
 
你可以將它調整為你自己的POP3服務配置。
 
你可以將它調整為你自己的POP3服務配置。
  
在本指南中,我們將把郵件以 <code>maildir</code> 的格式存放起來。兩個主要的郵箱格式分別是 <code>mbox</code> <code>maildir</code> 。其差別主要在於: <code>mbox</code> 是存儲著所有郵件及其郵件頭的一個文件;而  <code>maildir</code> 是一個目錄樹,每個郵件都是一個單獨的文件,這往往能提升運行速度。  
+
在本指南中,我們將把郵件以 {{ic|maildir}} 的格式存放起來。兩個主要的郵箱格式分別是 {{ic|mbox}} {{ic|maildir}} 。其差別主要在於: {{ic|mbox}} 是存儲著所有郵件及其郵件頭的一個文件;而  {{ic|maildir}} 是一個目錄樹,每個郵件都是一個單獨的文件,這往往能提升運行速度。  
  
<code>maildir</code> 只是一個文件夾,裡面有 <code>cur</code> ,  <code>new</code> <code>tmp</code> 這三個文件夾。
+
{{ic|maildir}} 只是一個文件夾,裡面有 {{ic|cur}} ,  {{ic|new}} {{ic|tmp}} 這三個文件夾。
 
     mkdir -p ~/mail/{cur,new,tmp}
 
     mkdir -p ~/mail/{cur,new,tmp}
  
現在可以運行getmail了。如果它正常工作了,就可以為getmail創建一個計劃任務(cronjob),讓它每過幾分鐘/小時就運行一次。鍵入 <code>crontab -e</code> 命令來編輯cronjobs,輸入以下內容:
+
現在可以運行getmail了。如果它正常工作了,就可以為getmail創建一個計劃任務(cronjob),讓它每過幾分鐘/小時就運行一次。鍵入 {{ic|crontab -e}} 命令來編輯cronjobs,輸入以下內容:
 
   */30 * * * * /usr/bin/getmail
 
   */30 * * * * /usr/bin/getmail
此設置可以每隔三十分鐘,運行一次<code>getmail</code>
+
此設置可以每隔三十分鐘,運行一次{{ic|getmail}}
 
+
  
 
=== 讓 Mutt 配合 GetMail 收信 ===
 
=== 讓 Mutt 配合 GetMail 收信 ===
Line 141: Line 139:
 
[http://www.procmail.org/ Procmail] 是一個極其強大的排序工具。鑒于此篇Wiki的目地,我們將做一些基本排序設置,來拋磚引玉。
 
[http://www.procmail.org/ Procmail] 是一個極其強大的排序工具。鑒于此篇Wiki的目地,我們將做一些基本排序設置,來拋磚引玉。
  
先安裝procmail。它在 <code>[extra]</code> 程式庫中。
+
先安裝procmail。它在 {{ic|[extra]}} 程式庫中。
 
   pacman -S procmail
 
   pacman -S procmail
  
Line 147: Line 145:
 
遺憾的是,上文中談到的 offlineimap 當前無法配合 procmail 來使用。它只負責從 IMAP 服務器上同步電郵,故需事先在 IMAP 服務器上作好相關的設定(如果電郵服務器支援的話)。<br>
 
遺憾的是,上文中談到的 offlineimap 當前無法配合 procmail 來使用。它只負責從 IMAP 服務器上同步電郵,故需事先在 IMAP 服務器上作好相關的設定(如果電郵服務器支援的話)。<br>
  
這裡以 getmail 這個工具為例,它必須要配置 <code>getmailrc</code> ,使你收郵件的時候,通過procmail來處理。可添加:
+
這裡以 getmail 這個工具為例,它必須要配置 {{ic|getmailrc}} ,使你收郵件的時候,通過procmail來處理。可添加:
  
<pre>
+
{{bc|1=
 
[destination]
 
[destination]
 
type = MDA_external
 
type = MDA_external
 
path = /usr/bin/procmail
 
path = /usr/bin/procmail
</pre>
+
}}
  
現在用編輯器打開 <code>~/.procmailrc</code> 。下面將對來自happy-kangaroos 郵件列表,以及來自親朋好友的所有電郵作一個排序,每個人都有各自的Maildir。
+
現在用編輯器打開 {{ic|~/.procmailrc}} 。下面將對來自happy-kangaroos 郵件列表,以及來自親朋好友的所有電郵作一個排序,每個人都有各自的Maildir。
<pre>
+
{{bc|1=
 
#指定郵件目錄
 
#指定郵件目錄
 
MAILDIR=~/Mail
 
MAILDIR=~/Mail
Line 173: Line 171:
 
* ^From: loveydovey@iheartyou.net
 
* ^From: loveydovey@iheartyou.net
 
lovey-dovey/
 
lovey-dovey/
</pre>
+
}}
  
保存 <code>.procmailrc</code> 後,運行getmail,看看它是否在適當的目錄中對你的郵件成功排序了。
+
保存 {{ic|.procmailrc}} 後,運行getmail,看看它是否在適當的目錄中對你的郵件成功排序了。
  
 
==用 SMTP 協議發送電郵==
 
==用 SMTP 協議發送電郵==
Line 183: Line 181:
  
 
=== 配置 msmtp ===
 
=== 配置 msmtp ===
[http://msmtp.sourceforge.net/ Msmtp]是一個很簡單易用的SMTP用戶端,安全性也不錯。它在<code>[extra]</code>程式庫中。
+
[http://msmtp.sourceforge.net/ Msmtp]是一個很簡單易用的SMTP用戶端,安全性也不錯。它在{{ic|[extra]}}程式庫中。
 
   pacman -S msmtp
 
   pacman -S msmtp
用編輯器打開 <code>~/.msmtprc</code> 。下面以 Gmail 帳戶為例來配置 <code>.msmtprc</code> :
+
用編輯器打開 {{ic|~/.msmtprc}} 。下面以 Gmail 帳戶為例來配置 {{ic|.msmtprc}} :
<pre>
+
{{bc|
 
account default
 
account default
 
# 我們可能會有不少電郵帳戶,也許每個帳戶都使用不同的方式來發送電郵,default 表示這是當前用戶的缺省郵件帳戶發送方式。
 
# 我們可能會有不少電郵帳戶,也許每個帳戶都使用不同的方式來發送電郵,default 表示這是當前用戶的缺省郵件帳戶發送方式。
Line 215: Line 213:
 
password mypassword
 
password mypassword
  
</pre>
+
}}
  
 
編輯好配置文件後,還需要設定它的權限為:僅用戶本人才能有此文件的讀寫權限:
 
編輯好配置文件後,還需要設定它的權限為:僅用戶本人才能有此文件的讀寫權限:
<pre>chmod 600 ~/.msmtprc</pre>
+
{{bc|chmod 600 ~/.msmtprc}}
  
 
用 1.4.11 版的 msmtp 時,必然要涉及到設定 TLS 。 [http://mychael.gotdns.com/blog/2007/04/18/msmtp-tls-and-archlinux/ msmtp, TLS, and ArchLinux] 對于如何配置 msmtp 的認証作出了指導。<br>
 
用 1.4.11 版的 msmtp 時,必然要涉及到設定 TLS 。 [http://mychael.gotdns.com/blog/2007/04/18/msmtp-tls-and-archlinux/ msmtp, TLS, and ArchLinux] 對于如何配置 msmtp 的認証作出了指導。<br>
 
如果你確實不知道上哪裡去找 ca-certificates.crt 這個 Gmail 信任的根證書,那么就
 
如果你確實不知道上哪裡去找 ca-certificates.crt 這個 Gmail 信任的根證書,那么就
[http://www.thawte.com/roots/ 自己申請一個吧]。不然,你就只能以 SSL 方式來連接 Gmail ;如果一定要用 TLS 方式,那也要設置 <code>tls_certcheck off</code>
+
[http://www.thawte.com/roots/ 自己申請一個吧]。不然,你就只能以 SSL 方式來連接 Gmail ;如果一定要用 TLS 方式,那也要設置 {{ic|tls_certcheck off}}
  
 
=== 讓 Mutt 配合 msmtp 發送電郵 ===
 
=== 讓 Mutt 配合 msmtp 發送電郵 ===
如果是按照上文所述,已經對 <code>~/.muttrc</code> 作了一些配置,那么還要再添加一些設置,才能在 Mutt 程式中發送電郵:
+
如果是按照上文所述,已經對 {{ic|~/.muttrc}} 作了一些配置,那么還要再添加一些設置,才能在 Mutt 程式中發送電郵:
  
<pre>
+
{{bc|1=
 
set realname='YOUR NAME'
 
set realname='YOUR NAME'
  
Line 234: Line 232:
 
# 配合 procmail ,分別指定不同來源電郵的接收目錄,也就是 Mutt 讀取電郵的目錄。
 
# 配合 procmail ,分別指定不同來源電郵的接收目錄,也就是 Mutt 讀取電郵的目錄。
 
mailboxes +INBOX +lovey-dovey +happy-kangaroos
 
mailboxes +INBOX +lovey-dovey +happy-kangaroos
</pre>
+
}}
  
現在,啟動 mutt。你會在 <code>~/mail/INBOX</code> 看到所有的郵件。按下 <code>m</code>鍵來撰寫郵件, (它會使用 <code>EDITOR</code> 環境變量中定義好的編輯器。如果這個變量還沒有被設定,那麽可鍵入 <code>export EDITOR=/path/to/yourfavorite/editor</code> 。想要測試一下,可以給自己發一封郵件。<br>
+
現在,啟動 mutt。你會在 {{ic|~/mail/INBOX}} 看到所有的郵件。按下 {{ic|m}}鍵來撰寫郵件, (它會使用 {{ic|EDITOR}} 環境變量中定義好的編輯器。如果這個變量還沒有被設定,那麽可鍵入 {{ic|1=export EDITOR=/path/to/yourfavorite/editor}} 。想要測試一下,可以給自己發一封郵件。<br>
寫好信後,在你的編輯器中保存它。再返回到Mutt中,它會顯示出這封郵件的消息。按 <code>y</code> 來發送它。如果都正常,那麽就恭喜了!你能用Mutt了!不過呢,要實現Mutt真正強大的能力,還要作一些進一步的定制才行啊。
+
寫好信後,在你的編輯器中保存它。再返回到Mutt中,它會顯示出這封郵件的消息。按 {{ic|y}} 來發送它。如果都正常,那麽就恭喜了!你能用Mutt了!不過呢,要實現Mutt真正強大的能力,還要作一些進一步的定制才行啊。
  
 
一份關于使用與定制Mutt的指南:
 
一份關于使用與定制Mutt的指南:
Line 246: Line 244:
  
 
===郵件簽名===
 
===郵件簽名===
在你的家目錄($HOME)中創建一個 <code>.signature</code> 文件。你的簽名會在附在郵件的後面。
+
在你的家目錄($HOME)中創建一個 {{ic|.signature}} 文件。你的簽名會在附在郵件的後面。
  
 
===用Firefox查看URL鏈接===
 
===用Firefox查看URL鏈接===
你可以在$HOME創建一個 <code>./mutt</code> 目錄,如果沒有的話。 再創建一個名為 macros 的文件。 加入下面的內容:
+
你可以在$HOME創建一個 {{ic|./mutt}} 目錄,如果沒有的話。 再創建一個名為 macros 的文件。 加入下面的內容:
  
 
   macro pager \cb <pipe-entry>'urlview'<enter> 'Follow links with urlview'
 
   macro pager \cb <pipe-entry>'urlview'<enter> 'Follow links with urlview'

Revision as of 11:44, 4 January 2014

Mutt是一個基於文本的郵件用戶端,因其具有強大的特性而聲名赫赫。儘管Mutt已經是一個十多年前的老東西了,但對於相當多的高級用戶來說,仍然是郵件用戶端之必選。不幸的是,Mutt會默認安裝一套複雜的快鍵綁定(keybindings),令人頭痛;說明文檔又長篇大論,足令人心悸。本指南將幫助那些普通用戶來安裝和運行Mutt,並幫助他(她)們按照自己的喜好,對Mutt作出初步的設定。

趕快開始吧

哪些是Mutt不會做的

Mutt是一個用戶級的電郵代理(MUA),這個程式就是被寫出來觀看電郵用的。寫它的是時候,並不是用來收、發和過濾電郵的。它要依賴外部程式來做這些事。在此Wiki中,我們將在POP3/IMAP協議下,使用 offlineimap 或者 getmail 來收郵件,用 procmail 來過濾郵件,並用 msmtp 來發送郵件。

安裝Mutt

通過一個簡單的命令 pacman -S mutt 就能安裝 Mutt了。

設置 IMAP 方式接收電郵

Mutt 已經內建支援 IMAP 方式,卻不會自己下載電郵來離線使用(除非設置好它)。本小節講述了如何用OfflineIMAP 來將電郵下載到本地文件夾中,然後用Mutt來處理這些郵件。

設置OfflineIMAP

首先要啟用Community程式庫,並通過一個簡單的命令 pacman -S offlineimap 來安裝 OfflineIMAP。 現在你要按自己的需要來設置好它。創建一個文件~/.offlineimaprc 並用你中意的編輯器來編輯它。下面是一個配置文件的例示。可按自己的需要來編輯它。

[general]
accounts = myaccount
# 郵件帳戶在本地電腦上的稱謂名,將它改為你任何你想要的名字
ui = Curses.Blinkenlights
# Blinky樣式的控制臺輸出,讓你知道發生了什么。
# ui = Noninteractive.Quiet
# 如果啟用此行,則不會輸出任何東西。最適宜cronjobs 在幕後運行了。

[Account myaccount]
# 這裡的“myaccount”就是你在剛剛在上面改過的稱謂名了。
localrepository = mylocal
# 這裡是特定的稱謂名“myaccount”之下的本地郵件暫存處的名字,起個自己喜歡的名字。
remoterepository = myremote
# 這裡是特定的稱謂名“myaccount”之下的遠程郵件暫存處的名字,起個自己喜歡的名字,比如:Gmail。
# autorefresh = 5
# 如果啟用此行,則每隔五分鐘抓取一下電郵

[Repository mylocal]
# 這裡的“mylocal”就是你在剛剛在上面改過的本地郵件暫存處的名字。
type = Maildir
# 在本地存儲郵件的方式。當然只支持 Maildir 方式。
localfolders = ~/Mail
# 指定~/Mail這個文件夾來跟電郵服務器同步電郵。當然必須事先創建好這個文件夾了,不過文件夾的名字可改為你任何你想要的名字。

[Repository myremote]
# 這裡的“myremote”就是你在剛剛在上面改過的遠程郵件暫存處的名字。
type = IMAP
# 遠程郵箱的類型。當前僅支持 IMAP 類型的郵箱。
remotehost = imap.myhost.com
# 連接什么地方的電郵呢?比如Gmail郵箱就是:imap.gmail.com
ssl = yes
# 啟用安全的 SSL 支持,需事先安裝OpenSSL。
# remoteport = 993
# 如果郵箱能支持的話,就一定要啟用,這將指定一個特定的加密通訊埠:993。否則將使用缺省的普通通訊埠,也起不到加密的作用了。
remoteuser = myremoteusername
# 就是你的郵箱登入名啦。
remotepass = myremotepassword
# 郵箱的密碼。 -- 當然,像這樣直接列出密碼,是不太安全。所以你要確信該文件只有你才有讀取權限。還有更好的辦法,不過就請自行參看OfflineIMAP的手冊吧。

這是能讓你運行起來的最少設置了。更多高級的特性,請參閱OfflineIMAP的主頁,再返回頭看一看offlineimaprc註解.

現在就快要準備好運行 OfflineIMAP 了。
創建一個已經在 offlineimaprc 中定義好的目錄,就像這樣: mkdir ~/Mail 。然後運行 offlineimap 。你的電郵就會同步到本地電腦上了。如果出了什么錯,就仔細查看一下錯誤消息。通常 OfflineIMAP 提示的錯誤消息有比較詳盡的文字說明。
如果能夠成功運行,那么可以啟用 # ui = Noninteractive.Quiet 這一行,以關閉提示信息。

讓 Mutt 配合 offlineimap 收信

若要配合配合 offlineimap 收信,那么本地存儲郵件的方式,只能是 Maildir 方式。 MailDir 的好處在於其格式的通用性和標準化.幾乎每一個 MUA 都能處理 MailDirs ,而 Mutt 當然也支持得很棒。現在用你的編輯器打開 ~/.muttrc 並將下面這幾行添加進入:

set mbox_type=Maildir
#設置郵件存儲方式為:Maildir
set folder=~/Mail
#設置郵件的存儲目錄為:~/Mail ,這個目錄跟上面 offlineimaprc  中設置的 localfolders 目錄必須是一致的。否則 offlineimap 收到的信,Mutt 是找不到的。
set spoolfile=+/INBOX
#將接收/閱讀新郵件的目錄設置為:~/Mail/INBOX 。因為 offlineimap 會默認把新郵件放到 INBOX 這個目錄中。該行也可以這樣寫:set spoolfile = "+INBOX" ,這种寫法跟上面是一樣的含義。
set mbox = "+inbox"
#新郵件閱讀後,轉移到 ~/Mail/inbox 這個目錄。
set record = "+sent"
#郵件被成功發送後,轉移到 ~/Mail/sent 這個目錄。
set postponed = "+draft"
#郵件如果暫時不能發送或要推遲發送,就轉移到 ~/Mail/draft 這個目錄。
set header_cache=~/Mail/.hcache
#設置郵件頭的暫存目錄

macro index G "!/usr/bin/offlineimap \n" "Checking mails......"
#設置一個快捷鍵:G ,來調用 offlineimap 查閱新電郵

這是一個最精簡的配置文件了,能讓你訪問你的 Maildir,並在收件箱(INBOX)中檢查新電郵。這個配置也對電郵的郵件頭作了暫存,從而加速郵件的列示過程。也許你的安裝包沒有開啟暫存功能,不過Arch 的安裝包一定是開啟了的。注意這項功能真的對 OfflineIMAP 有相當影響。它總是在從郵件服務器同步電郵。 spoolfile 告訴Mutt從本地哪個目錄來得到新電郵。你可能還想添加更多的 Spoolfiles,例如郵件列表(Mailing List)所在的目錄。或者你想添加其它什么東西,但這就超出了這份文檔的范圍了,還請自行參閱手冊 man mutt

當然,我們也最好事先創建好配置文件中的那些郵件儲存目錄。然後就可以鍵入指令: mutt 來收信和閱讀信件了。

就這樣了。別忘了將每一樣設置都調整到你喜歡的樣子。自己努力解決吧。

設置POP方式接收電郵

配置 GetMail

先安裝getmail。它在[extra] 程式庫中.

 pacman -S getmail

現在創建目錄: ~/.getmail/。用編輯器打開~/.getmail/getmailrc

這裡有一個例子 getmailrc ,用的是Gmail帳戶。

[retriever]
type = SimplePOP3SSLRetriever
server = pop.gmail.com
username = username@gmail.com
port = 995
password = password

[destination]
type = Maildir
path = ~/mail/

你可以將它調整為你自己的POP3服務配置。

在本指南中,我們將把郵件以 maildir 的格式存放起來。兩個主要的郵箱格式分別是 mboxmaildir 。其差別主要在於: mbox 是存儲著所有郵件及其郵件頭的一個文件;而 maildir 是一個目錄樹,每個郵件都是一個單獨的文件,這往往能提升運行速度。

maildir 只是一個文件夾,裡面有 curnewtmp 這三個文件夾。

   mkdir -p ~/mail/{cur,new,tmp}

現在可以運行getmail了。如果它正常工作了,就可以為getmail創建一個計劃任務(cronjob),讓它每過幾分鐘/小時就運行一次。鍵入 crontab -e 命令來編輯cronjobs,輸入以下內容:

 */30 * * * * /usr/bin/getmail

此設置可以每隔三十分鐘,運行一次getmail

讓 Mutt 配合 GetMail 收信

配置文件的內容跟上面是大同小異的。也許要單獨指定 spoolfile 的目錄。自己試試吧。

郵件排序

Procmail 是一個極其強大的排序工具。鑒于此篇Wiki的目地,我們將做一些基本排序設置,來拋磚引玉。

先安裝procmail。它在 [extra] 程式庫中。

 pacman -S procmail

用哪個工具來接收電郵,就必須對哪個工具的配置文件進行編輯。
遺憾的是,上文中談到的 offlineimap 當前無法配合 procmail 來使用。它只負責從 IMAP 服務器上同步電郵,故需事先在 IMAP 服務器上作好相關的設定(如果電郵服務器支援的話)。

這裡以 getmail 這個工具為例,它必須要配置 getmailrc ,使你收郵件的時候,通過procmail來處理。可添加:

[destination]
type = MDA_external
path = /usr/bin/procmail

現在用編輯器打開 ~/.procmailrc 。下面將對來自happy-kangaroos 郵件列表,以及來自親朋好友的所有電郵作一個排序,每個人都有各自的Maildir。

#指定郵件目錄
MAILDIR=~/Mail
#酌情填寫閱讀新郵件的目錄
DEFAULT=$MAILDIR/INBOX/
#指定處理時的記錄文件
LOGFILE=$MAILDIR/procamil_log

#所有發往happy-kangaroos@nicehost.com的電郵,放入 happy-kangaroos 目錄。
:0:
* ^To: happy-kangaroos@nicehost.com
happy-kangaroos/

#所有來自loveydovey@iheartyou.net的電郵,放入 lovey-dovey 目錄。
:0:
* ^From: loveydovey@iheartyou.net
lovey-dovey/

保存 .procmailrc 後,運行getmail,看看它是否在適當的目錄中對你的郵件成功排序了。

用 SMTP 協議發送電郵

無論你是用 POP 還是 IMAP 協議來接收電郵,都可能要用到 SMTP 協議來發送郵件。
這裡選擇 msmtp 這個工具來幫助我們發送郵件。

配置 msmtp

Msmtp是一個很簡單易用的SMTP用戶端,安全性也不錯。它在[extra]程式庫中。

 pacman -S msmtp

用編輯器打開 ~/.msmtprc 。下面以 Gmail 帳戶為例來配置 .msmtprc :

account default
# 我們可能會有不少電郵帳戶,也許每個帳戶都使用不同的方式來發送電郵,default 表示這是當前用戶的缺省郵件帳戶發送方式。

host smtp.gmail.com
port 587
# 這是 Gmail 的 TLS 通訊埠
# port 465
# 這是 Gmail 的 SSL 通訊埠
protocol smtp

auth on
# 允許 SMTP 驗證
tls on
# 允許 TLS/SSL 加密連接,以保證電郵安全。如果指定了 Gmail 的 TLS 通訊埠,
#那么它必須:要麼使用 tls_trust_file 指定一個信任的服務器證書, 要麼就關閉
#tls_certcheck (易受到中間人攻擊)。不是每一台電郵服務器都支持 TLS 隧道加密方式 。
#有個別的服務器只能實現 SSL 加密,它會要求 tls on 的同時,關閉掉 tls_starttls 。
tls_trust_file ~/TRUST_CERT_FILE.crt
# ca-certificates.crt 就是個可信任證書,對 Gmail 而言。
#tls_certcheck off
#如果沒有可信任的服務器證書,就只好啟用上面這行了。
# tls_starttls off
# 啟用 TLS 保護下的 SMTP 隧道。缺省情況下就是打開的。需要指定 Gmail 的 TLS 通訊埠。

from username@gmail.com
user username@gmail.com
password mypassword

編輯好配置文件後,還需要設定它的權限為:僅用戶本人才能有此文件的讀寫權限:

chmod 600 ~/.msmtprc

用 1.4.11 版的 msmtp 時,必然要涉及到設定 TLS 。 msmtp, TLS, and ArchLinux 對于如何配置 msmtp 的認証作出了指導。
如果你確實不知道上哪裡去找 ca-certificates.crt 這個 Gmail 信任的根證書,那么就 自己申請一個吧。不然,你就只能以 SSL 方式來連接 Gmail ;如果一定要用 TLS 方式,那也要設置 tls_certcheck off

讓 Mutt 配合 msmtp 發送電郵

如果是按照上文所述,已經對 ~/.muttrc 作了一些配置,那么還要再添加一些設置,才能在 Mutt 程式中發送電郵:

set realname='YOUR NAME'

set sendmail="/usr/bin/msmtp"

# 配合 procmail ,分別指定不同來源電郵的接收目錄,也就是 Mutt 讀取電郵的目錄。
mailboxes +INBOX +lovey-dovey +happy-kangaroos

現在,啟動 mutt。你會在 ~/mail/INBOX 看到所有的郵件。按下 m鍵來撰寫郵件, (它會使用 EDITOR 環境變量中定義好的編輯器。如果這個變量還沒有被設定,那麽可鍵入 export EDITOR=/path/to/yourfavorite/editor 。想要測試一下,可以給自己發一封郵件。
寫好信後,在你的編輯器中保存它。再返回到Mutt中,它會顯示出這封郵件的消息。按 y 來發送它。如果都正常,那麽就恭喜了!你能用Mutt了!不過呢,要實現Mutt真正強大的能力,還要作一些進一步的定制才行啊。

一份關于使用與定制Mutt的指南:

xterminus 是mutt社區中相當活躍的人。可以從 Code and Configs Page 找到他的個人配置文件。如果你有什麽特別的問題,請隨意在 the irc channel 上提問。

郵件簽名

在你的家目錄($HOME)中創建一個 .signature 文件。你的簽名會在附在郵件的後面。

用Firefox查看URL鏈接

你可以在$HOME創建一個 ./mutt 目錄,如果沒有的話。 再創建一個名為 macros 的文件。 加入下面的內容:

 macro pager \cb <pipe-entry>'urlview'<enter> 'Follow links with urlview'

然後必需要安裝 urlview ,它在 [AUR] 倉庫中,可用 yaourt 來安裝:

yaourt -S urlview

在$HOME創建一個 .urlview 配置文件,并加入下面的內容:

REGEXP (((http|https|ftp|gopher)|mailto)[.:][^ >"\t]*|www\.[-a-z0-9.]+)[^ .,;\t>">\):]
COMMAND firefox %s 

當用Mutt閱讀郵件時,點擊 ctrl+b ,將會列出郵件中所有的超級鏈接 urls 。用箭頭按鍵上下翻動它們,然後在要訪問的鏈接上點擊 enter 。Firefox 將啟動,并訪問那個站點了。

當然,urlview 配置文件中的“firefox”完全可以用任意網頁網頁瀏覽器來替換,比如:swiftfox, elinks, w3m,等等。

Mutt 和 Vim

要將文本的寬度限制在 72 個字符, 可編輯你的 .vimrc 文件,并加入:

au BufRead /tmp/mutt-* set tw=72

這樣,Vim 只有在你使用 Mutt 的時候,都會有上面的行為了。

要設置另外一個臨時文件目錄,如 ~/.tmp,可在你的 .muttrc 文件中加上一行,如下所示:

set tmpdir="~/.tmp"

要重新格式化一個調整過的文本,可參看 Vim 的幫助文件:

:h 10.7

一點引導

有沒有同時支持 IMAP 和 POP 方式收信的工具呢?

有,那就是 fetchmail. 安裝方法: pacman -S fetchmail

它是一個更加強大的電郵接收工具,見Fetchmail ,它支援包括 POP 和 IMAP 在內的多種協議,也能支援 procmail 。

有沒有同時支持 IMAP 和 POP 方式收信,還能郵件排序的呢?

有,那就是 FDM (Fetch and Deliver Mail) 安裝方法: pacman -S fdm

它是一個輕量級的電郵接收和排序工具,可以替代 fetchmail + procmail. 參見 FDM,還有論壇上的文章:fdm - a new procmail & fetchmail & esmtp

自動生成 mutt 配置文件

mutt 配置文件比較複雜,不過現在有一個工具可幫助生成配置文件,可自行參閱 muttrc builder