http://creativecrap.com/story/software/mbox-to-maildir
mbox mail storage format
這是傳統的郵件格式,將所有的信件都存在一個檔案中,所以相對的會有很多的缺點,包含當檔案太大時存取的效率即變差,若郵件檔損毀則所有的信件都沒了,同時只能有一個 process 存取,第二個 process 須等第一個 unlock 之後,才能存取。優點應該是簡單,單一檔案搜尋時較快,大部份預設值都還是 mbox,備份時也方便,因為只有一個檔案。
maildir mail storage format
這就是比較新的格式,沒記錯的話早先是由 Qmail 開始使用。將每一封信件就單獨存成一個檔案。相對於 mbox 的缺點即 maildir 的優點,反過來搜尋速度就是 maildir 的缺點了。
mb2md - Converting Mbox mailbox files to Maildir format
mb2md 是 perl script 安裝可以透過 yum 或是直接下載來執行。
進行之前先把 MTA 相關的程式先 stop 。
轉換會員 blah 的郵件為例:
$ su blah
$ cd ~
mb2md 會讀取 $MAIL 這個環境變數來決定 mailbox 的位置,所以先確認一下是否正確
$ env
grep -i mail
MAIL=/var/spool/mail/blah
如果不正確則先重新指定 $MAIL 變數
$ export MAIL=/var/spool/mail/blah
然後檢查 mailbox 並在 home 下建立 Maildir/ 其下會有 cur/, new/, tmp/ 三個子目錄
$ mb2md -m
然後就要開始進行轉換了,一般 mbox 的預設位置是在 ~/mail
如果不是 mail 則自行變更
$ mb2md -s mail -R
然後會看到一堆轉換的訊息後,就轉換完畢。要記得加 -R 才會將所有的子目錄都轉換建立好.
mb2md 轉換是以添加的方式,所以如果原先就有 Maildir/ 會把 mail/ 再匯入一次。
換轉之後,就可以把舊的 mbox 備份起來,等確定後再刪掉
$ mv mail mail.mbox
$ sudo mv /var/spool/mail/blah /var/spool/mail/blah.mbox
修改 /etc/postfix/main.cf
home_mailbox = Maildir/
因為我是透過 Mailscanner 來做過濾,所以 mailbox_command 就一樣不需要去設定
修改 /etc/dovecot.conf 如果使用其他的 imap 就修改相對的設定
default_mail_env = maildir:/home/%u/Maildir
這樣就完畢了,重新啟動 dovecot, Mailscanner
參考資料
mb2md
http://batleth.sapienti-sat.org/projects/mb2md/
IMAP benchmark
http://www.decisionsoft.com/pdw/mailbench.html