mutt是一個Linux終端下的著名的郵件客戶端,如你所願,mutt就是一個郵件客戶端。沒有其他浮華的功能,它可以幫助你提升效率,至於幫助你裝X只能算是mutt的特殊加成。
由於mutt是一個有著unix哲學的程序,可定制性很強,其高級功能可以由不同的程序來完成,比如以下搭配:
1.mutt
使用mutt內建的imap,pop,smtp支持,最簡單的方式,只需要安裝mutt這一個軟件包。
2.mutt + msmtp
最簡單的組合,配合imap協議,可以滿足大多數人的要求
其中smtp功能由msmtp實現,你甚至可以把imap功能也由其他軟件來實現
3.mutt + msmtp + getmail + procmail
稍微復雜一點的組合,mutt是客戶端,msmtp作為mta,getmail用來收取郵件,procmail過濾郵件。
mta還可以使用exim4或者postfix替代,一般使用msmtp就夠了,因為postfix實在是太好了,郵件服務器通常會選擇postfix。
msmtp可以使用esmtp替代。
郵件收取功能也可以使用fetchmail替代getmail,由於需要本地mta投遞,所以同時需要procmail。
procmail是一個功能及其強大的郵件過濾系統。ps:看到這句話,你就應該明白,我顯然沒有使用它。。。
Mutt 跟其它 email 程序有什麼重大區別嗎?
Mutt 是一個發源於 Unix 的郵件程序,它跟一般的 Windows 郵件程序不同,它不是一個包羅萬象的大雜燴。你甚至會發現它根本不直接發出郵件,它從來不自己編輯郵件,它從來不自己對郵件進行加密和數字簽名……
Mutt 更像一個文件管理器,只不過它管理的是email。它的功能是借助各個最強大的程序來實現的。這符合 UNIX 的設計思想。
當 Mutt 需要編輯郵件時,它有可能調用 vi, VIM, emacs, pico, ……等編輯器。
當 Mutt 需要發信時,它把需要發出的信件放到 sendmail 的隊列裡,就什麼都不管了。
當需要數字簽名時,Mutt 會把信件交給 GnuPG 之類的程序處理一下,然後再發出去。
怎麼收郵件呢?Mutt 不會自己到 POP 服務器去取郵件,你需要一個 fetchmail 程序,幫你把 email 從 POP 服務器取回來,轉發到自己的 sendmail 的郵箱裡。這樣看起來就是你的主機成為了一個完整的 UNIX 網絡工作站。
是不是覺得挺麻煩?其實有些 patch 可以使 Mutt 不依賴於這些程序,而自己處理收發工作。但是,強烈建議你使用這些外部程序!到時候你就知道這些東西的好處了。首先,VIM, sendmail, fetchmail 這些程序都是經過千錘百煉的質量信得過的程序,用它們編輯,發送,收取郵件你絕對放心。其次,你得到了一個 UNIX 網絡工作站的功能:
sendmail 不但可以幫 Mutt 發出郵件,也可以幫其它 Unix 程序比如 tin 發送郵件。如果你需要一個郵件服務器幫你中轉,那麼你只需要設置一次就可以使所有的用戶的所有這樣的程序都自動可以發送郵件,不用每個程序都去設置帳號了。
fetchmail 收到郵件之後會轉發給本地的 sendmail. sendmail 如果允許 .forward, 你就可以在自己的目錄裡編輯一個.forward文件,信件可以自動被轉發到其它地方或者經過一個過濾器過濾。你可以自己用perl等語言來寫一個過濾器,它可以根據信件內容實現很多功能,比如自動回復等等。比如我就寫了一個簡單的過濾器,它可以記錄所有發件人的地址,如果我把 helloooo 機器人連接到過濾器,恐怕你們就會收到可愛的 helloooo 的回信了 :)
Mutt作為Gmail客戶端
由於Gmail服務器端垃圾郵件過濾已經做得很好了,而且我使用的是imap協議,所以不需要getmail去收取郵件,目前也沒有必要自己再去配置procmail的過濾系統。
本文將對mutt + msmtp的配置進行說明。
1.安裝mutt和msmtp
一般發行版
mutt和msmtp已經包含在大多數發行版的軟件源裡,直接使用包管理器安裝,其他發行版以此類推:
復制代碼代碼如下:
$ sudo apt-get insatll mutt msmtp #適用於debian系
$ sudo yum insatll mutt msmtp #適用於red hat系
Gentoo Linux下安裝
復制代碼代碼如下:
$ echo "mail-client/mutt -berkdb gpg imap mbox nntp sasl sidebar slang smime smtp" >> /etc/portage/package.use # 設置mutt的use flag
$ echo "mail-mta/msmtp sasl" >> /etc/portage/package.use # 設置msmtp的use flag
$ emerge -av mutt msmtp # 安裝mutt和msmtp
2.配置mutt
創建並編輯~/.muttrc
把username替換為你的Gmail用戶名,passwd替換為密碼
復制代碼代碼如下:
# 設置發信地址和用戶名
set from = "[email protected]"
set realname = "username"
set use_from = yes
復制代碼代碼如下:
# 設置Gmail帳戶和密碼
set imap_user = "[email protected]"
set imap_pass = "your password"
復制代碼代碼如下:
# 設置遠程服務器文件夾
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
mailboxes = +INBOX
set postponed = "+[Gmail]/Drafts"
復制代碼代碼如下:
# 允許mutt自動創建一個新的imap連接
unset imap_passive
復制代碼代碼如下:
# imap連接保持時間
set imap_keepalive = 300
復制代碼代碼如下:
# 檢查新郵件間隔時間
set mail_check = 120
復制代碼代碼如下:
# 本地緩存目錄
set header_cache = ~/.mutt/cache/headers
set message_cachedir = ~/.mutt/cache/bodies
復制代碼代碼如下:
# 設置TLS驗證
set certificate_file = /etc/ssl/certs/ca-certificates.crt
復制代碼代碼如下:
# 設置內建smtp,這裡我們不使用
#set smtp_url = "smtps://[email protected]@smtp.gmail.com:465/"
#set smtp_pass = "your password"
#set ssl_starttls = yes
復制代碼代碼如下:
# 使用msmtp
set sendmail = "/usr/bin/msmtp"
復制代碼代碼如下:
# 不保存發送的郵件
unset record
復制代碼代碼如下:
# 回信不包含郵件頭
set header = no
復制代碼代碼如下:
# 退出提醒
set quit = ask-yes
復制代碼代碼如下:
# 回信包含原文
set include
復制代碼代碼如下:
# 設置回信引文之前的插入符號
set indent_str = "> "
復制代碼代碼如下:
# 設置郵件頭
my_hdr From: [email protected]
復制代碼代碼如下:
# 郵件打分
score "~N" +4
score "~s 通知" +2
score "~D" -5
score "~O" +1
score "~s believe" -10
復制代碼代碼如下:
# 排序方式
set sort = score
復制代碼代碼如下:
# 二級排序
set sort_aux = date
復制代碼代碼如下:
# 翻到最後一頁不回到第一頁
set pager_stop
復制代碼代碼如下:
# 快速回信
set fast_reply
復制代碼代碼如下:
# 刪除郵件自動移動光標
set resolve = yes
復制代碼代碼如下:
# 設置編碼,保持和終端一致
set charset = "utf-8"
復制代碼代碼如下:
# 發信使用的字符集
set send_charset = "us-ascii:iso-8859-1:gb18030:utf-8"
復制代碼代碼如下:
# 是否編輯郵件頭
set edit_headers = no
復制代碼代碼如下:
# pager顯示行數
set pager_index_lines = 4
復制代碼代碼如下:
# 告知mutt哪些是郵件列表
subscribe [email protected]
subscribe [email protected]
subscribe [email protected]
復制代碼代碼如下:
# 使用solarized配色方案
source ~/.mutt/mutt-colors-solarized/mutt-colors-solarized-dark-256.muttrc
編輯好後保存退出。
修改~/.muttrc的權限
復制代碼代碼如下:
$ chmod 700 ~/.muttrc
創建本地文件夾
復制代碼代碼如下:
$ mkdir -p ~/.mutt/cache
3.配置msmtp
創建或修改~/.msmtprc
復制代碼代碼如下:
# Accounts will inherit settings from this section
defaults
auth on
tls on
tls_trust_file /usr/share/ca-certificates/mozilla/Thawte_Premium_Server_CA.crt
logfile ~/.mutt/msmtp.log
復制代碼代碼如下:
# Gmail account
account gmail
host smtp.gmail.com
port 465
from [email protected]
user [email protected]
password password
tls_starttls off
tls_trust_file /etc/ssl/certs/ca-certificates.crt
復制代碼代碼如下:
# set default account
account default : gmail
保存退出,並設置權限
復制代碼代碼如下:
$ chmod 600 ~/.msmtprc
4.配置mutt使用solarized配色方案
復制代碼代碼如下:
$ git clone https://github.com/altercation/mutt-colors-solarized.git ~/.mutt/mutt-colors-solarized
然後在~/.muttrc中修改相應配置。
大功告成,終端啟動:
復制代碼代碼如下:
$ mutt
如無例外你將看到:
注意事項
Gmail啟用了兩步驗證需要為mutt設置應用專用密碼