Fetchmail + imaps 架設

Fetchmail + imaps 架設

原因就是最近喜歡 imap 大於 pop3,imap 除了可以離線瀏覽,也可以同步資料夾,我覺得滿方便的!

以前的作法是 NB, Desktop, Server 都用 pop3 把信收下來,同時保留在伺服器上。因為我希望到處都可以收信,但隨著MAIL的增加慢慢發現一些缺點,其中比較有問題的是信件狀態無法同步,寄過的信四散各地等。用過 gmail 的 imap 服務之後,發現真的好處多多,以前比較擔心的離現閱讀問題也不存在,加上現在空間都很大,所以完全沒有問題。

但是我們家公司的 imap server 效能遠不如 gmail imap,讀信和更新表頭都需要超級久,你可以想像讀一封信要等5分鐘嘛!S 老大就教我先用 Fetchmail 收下來,自己架設 imaps 然後自己收這樣就會很快了,所以目前自己收的很爽!

作法

從 Fetchmail 偽裝 pop3 client 把信件收到 /var/mail/user_account 同時自己也是 imaps server(只服務自己的主機,爽!)

架設 dovecot-imapd 起動 imap(with ssl) 服務

遠端可以用 ssh+mutt 收信,也可以設定 Thunderbird/Evolution 用 imaps 的服務!

安裝:

apt-get install fetchmail mutt dovecot-imapd openssl ssh

設定 Fetchmail:

vi \~/.fetchmailrc

poll pop3.nchc.org.tw protocol pop3 uidl username "mail_account" password "passwd" keep ssl

poll host 表示每次執行 fetchmail 都去 host 收信

protocol 通訊協定,這邊是 pop3 服務

uidl 與 keep 表示把信件留在伺服器上且以 client 的更新資料為主,可以避免重複收到pop3的信件

username password 帳號與密碼

ssl 使用 ssl 的方式收信

編輯好 fetchmailrc 後,如果想要 Download 目前所有的信件,可以直接下指令

fetchmail -a

之後在配合 crontab 去定時下載信件:(設定每三分鐘收一次信)

crontab -e

*/3 * * * * fetchmail -s >/dev/null 2>&1

架設 IMAP Server:

vi /etc/dovecot/dovecot.conf

#我只想要啟動imaps 服務

protocols = imaps

#...

#ssl_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem

#ssl_key_file = /etc/ssl/private/ssl-cert-snakeoil.key

#加上以下兩行

ssl_cert_file = /etc/ssl/certs/T-DRBL.pem

ssl_key_file = /etc/ssl/private/T-DRBL.key

產生私人 ssl 的 CA:

openssl genrsa -out T-DRBL.key 1024

openssl req -new -x509 -key T-DRBL.key -out T-DRBL.pem -days 1826

mv T-DRBL.key /etc/ssl/private

mv T-DRBL.pem /etc/certs

c_rehash

建議 common name 用 host name or IP 避免檢查為不正確的 CA,因為是自己用的不是很重要,但正式的 CA 可能要看看怎麼做比較好。

重新起動 imaps server:

/etc/init.d/dovecot restart

參考資料:

ref.1 //Manual Reference Pages  - //fetchmail (1)

ref.2 **[SOLVED] HOWTO How to renew an expired Dovecot IMAP/POP3 SSL certificate**

convert from Thomas blog post id 347 old convert log: ./141228/tag%3E2008%2009%20linux)

@2008 @09 @linux

Comments