[分享]Mutt + fetchmail + msmtp來收發信件

常言道:『飲水思源』,在 Open Source 的世界裡,我們常常需要別人的幫助,但是在您有所心得的時候請記得分享給大家,『幫助人是快樂的喔』。歡迎您在使用 debian 的過程中的任何心得分享給大家。

[分享]Mutt + fetchmail + msmtp來收發信件

文章旺伯 » 週二 3月 21, 2006 10:48 pm

此文件的最新版可由http://qerter.wiki.ptt.cc/-Mutt+Fetchmail+Msmtp+GnuPG取得

Mutt是一套文字模式(text mode)的Mail Client,目前有許多優秀的GUI的Mail client,如thunderbird、evolution、Kmail ...等。但是Mutt節省資源,以及相當彈性化的結構,令我愛不釋手。

Mutt預設安裝沒有POP3、SMTP的功能,也沒有郵件編輯器。這些功能 Mutt都委由其他軟體。
本文預計用到的軟體有mutt 、fetchmail 、msmtp、gnupg,全部的套件可由Debian安裝,或者自行去網站下載Make安裝。

代碼: 選擇全部
root shell>apt-get install mutt fetchmail msmtp gnupg

==== SMTP ====

若主機有安裝MTA,如Sendmail 、Postfix、exim...等。Mutt 可以直接送給MTA,請MTA 幫忙送信。若主機沒有安裝如家中的電腦、四處帶著跑的Notebook,或者嫌安裝設定MTA麻煩的,可以安裝類似SMTP代理人如msmtp,使用msmtp幫Mutt送信到遠端的MTA。

==== POP3 ====

可以使用fetchmail,將遠端主機的郵件,收進本地端的 MailBox ,(/var/mail)。再使用Mutt來讀信。

==== 郵件編輯器 ====

Mutt使用環境變數$EDITOR,你可以使用你喜歡的編輯器來撰寫郵件,如vim ,Emacs。
在.bashrc設定
代碼: 選擇全部
 export EDITOR = vim
 


=== Mutt 使用msmtp寄信設定 ===
Debian安裝msmtp,設定家目錄.msmtprc,可參考套件內附的設定檔(/usr/share/doc/msmtp/examples/msmtprc-user.example)
代碼: 選擇全部
 # Example for a user configuration file

 # Set default values for all following accounts.
 defaults
 tls on #Gmail TLS有打開
 tls_trust_file /etc/ssl/certs/ca-certificates.crt
 logfile ~/.msmtp.log

 # A freemail service
 account gmail
 host smtp.gmail.com
 from yourid@gmail.com
 auth on #Gmail SMTP要認證
 user yourid
 password secret

 account default : gmail
 

這裡是使用Gmail ,免費的SMTP服務,不過前提是要有Gmail 帳號。

讓Mutt使用msmtp幫我們寄信,設定.muttrc。
代碼: 選擇全部
 set sendmail="/usr/bin/msmtp"
 set from=yourid@yourdomain.com #gmail SMTP會覆寫
 

寄信時有問題時,請去翻閱.msmtplog。比較清楚問題在哪?。
=== 設定Mutt 環境 ===
參考http://learn.tsinghua.edu.cn:8080/2001315450/mutt_frame.htmlMutt使用指南,適合zh_TW.UTF-8 .muttrc設定檔如下

編輯家目錄的.muttrc設定檔
代碼: 選擇全部
 set strict_mime=no
 set assumed_charset="big5:gb2312:utf-8"
 set move=no
 set indent_str="> "
 set charset="UTF-8" #UTF-8終端機
 set sort=date-received
 set pager_index_lines=5
 set locale="zh_TW.UTF-8" #顯示中文日期
 auto_view text/html application/msword #遇到html 與doc 使用.mailcap處理
 set sendmail="/usr/bin/msmtp" #使用msmtp幫我們寄信
 

.mailcap ,非mime編碼的可以使用其他程式幫忙開啟,相對應的程式就寫在
.mailcap。如Microsoft Doc檔案可以使用wvware套件,Debian直接安裝即可。
來幫忙把doc轉成html。再使用lynx 用mutt內嵌顯示。不過我試html可以內嵌顯示,doc檔要開啟附件才能在mutt看到wvHtml轉換過的html。真詭異,不像那篇的mutt指南可以直接在mutt下面的視窗看到Doc的內容。專門用來對付學校通知的Doc附件=.=
代碼: 選擇全部
 text/html; lynx -display_charset=utf-8 --dump %s; nametemplate=%s.html; copiousoutput
 
  application/msword; wvHtml --charset=utf-8 %s - |lynx -display_charset=utf-8 --dump -stdin |most;
  nametemplate=%s.html; copiousoutput
   
   text/html; lynx -display_charset=utf-8 --dump %s; nametemplate=%s.html; copiousoutput
   

most 若沒有安裝,可使用more or less代替 -stdin |most; 代替成-stdin |less

=== 使用fetchmail用POP收遠端信件放至本地Mailbox ===
收至本地Mailbox之後就能用Mutt來讀信了。
Debian安裝fetchmail,設定家目錄下的.fetchmailrc
代碼: 選擇全部
   set postmaster "local_user_name"
   set bouncemail
   set no spambounce
   set properties ""
   poll remote_pop3_server_address with proto POP3
          user 'server_user_name' there with password 'secret' is 'local_user_name' here
    

設定crontab ,每五分鐘去收一次信。
代碼: 選擇全部
     ~$crontab -e
    

代碼: 選擇全部
     5 * * * * fetchmail
    

其實fetchmail不只是可以做這件事而已,還可以替我們將一個信箱的信件,全部轉寄到另外一個信箱,在本文中沒用到請讀者參閱其他相關的設定。

=== Reference ===
http://learn.tsinghua.edu.cn:8080/2001315450/mutt_frame.html Mutt使用指南
http://www.mutt.orgMutt WebSite,有豐富的Manual參考。
http://msmtp.sourceforge.net msmtp Website
http://www.catb.org/~esr/fetchmail/fetchmail Website
--
努力學習Debian中
旺伯
可愛的小學生
可愛的小學生
 
文章: 29
註冊時間: 週三 6月 02, 2004 1:53 pm
來自: 地球

回到 share

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客