目前公司mail架構為 freebsd + postfix +openwebmail (mailbox)
mailbox的最大缺點就是在於鎖定的問題,隨著公司人數上升,問題的發生率就越來越頻繁
對客服單位(信件量大、即時處理)發生的機率更大。
於是幫客服部門另外架設一台備份、線上查詢用的mail server
這台mail server改用maildir的架構,將每封信單獨成一個檔案存放,雖然效能下降,但是能有效解決lock的問題。
環境:
由於機器的raid驅動問題,freebsd在安裝時便無法抓到硬碟,freebsd官方的硬體支援列表也沒列出該raid晶片(要裝也是可以,不過太費工了),故改用CentOS搭配套件:
dovecot(imap、pop3)
postfix (smtp)
SquirrelMail (webmail)
httpd (apache)
php
安裝方式:
一切以最簡單的yum安裝
- 安裝dovecot
- yum install dovecot
- 修改設定檔
vi /etc/dovecot/dovecot.conf
將protocols設為imap
protocols = imap
- 修改mail存放位置
vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
- 修改認證
vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
- postfix (系統內建,centos安裝時要選擇 basic server)
- vi /etc/postfix/main.cf
- inet_interfaces = localhost 這行前面加上 #號註解
- 設定domain、host
myhostname = (自行帶入)
mydomain =(自行帶入)- 安裝httpd、php(不贅述)
- 安裝SquirrelMail
SquirrelMail目前在centos6.3的yum上面找不到,
於是我到http://rpmfind.net/尋找
找到 squirrelmail-1.4.8-5.el5.centos.13.noarch.rpm
- 抓取rpm
wget ftp://rpmfind.net/linux/centos/5.8/updates/x86_64/RPMS/squirrelmail-1.4.8-5.el5.centos.13.noarch.rpm
- 安裝
rpm -i squirrelmail-1.4.8-5.el5.centos.13.noarch.rpm
如果有跳出有相依性套件,再依說明安裝所需套件
- 設定語系,選 10
squirrelmail_default_language = 'zh_TW';
default_charset = 'big5';
- 其他的設定很明確,進去看一看就知道怎麼用了,基本上不用改,故不贅述。
- 存檔 S,退出 Q
- 新增change passwd plugins
到官方網站:http://squirrelmail.org/plugin_view.php?id=117 下載適合的版本。
(依照squirrelmail對應版本下載,筆者squirrelmail為1.4.8-5,可選擇Version 4.0,Requires: SquirrelMail 1.2.8, Compatibility plugin 1.3)cd /usr/share/squirrelmail/plugins wget http://www.squirrelmail.org/plugins/change_passwd-4.0-1.2.8.tar.gz tar -zxvf change_passwd-4.0-1.2.8.tar.gz cd /usr/share/squirrelmail/config ./conf.pl # 選 8. Plugins -> 將 Available Plugins: 內的 change_passwd 加入模組 -> 選 S 儲存設定 -> 選 Q 後離開
- 安裝 Compatibility plugin 1.3 (SquirrelMail 官方plugins下載)官方網站:http://squirrelmail.org/plugin_view.php?id=152找1.3版
cd /usr/share/squirrelmail/plugins/ wget http://www.squirrelmail.org/plugins/compatibility-1.3.tar.gz tar -zxvf compatibility-1.3.tar.gzcd /usr/share/squirrelmail/config ./conf.pl # 選 8. Plugins -> 將 Available Plugins: 內的 Compatibility 加入模組
- 安裝 vacation(auto reply)套件
官方網站:http://squirrelmail.org/plugin_view.php?id=172
Requires: SquirrelMail 0.5 or above
(需求說明的部份,官方網頁上漏掉2個需求。1.ftp server (直接yum安裝vsftp,不贅述) 2.vacation 程式)cd /usr/share/squirrelmail/plugins/wget http://www.squirrelmail.org/plugins/autorespond-0.5.1-1.4.tar.gz tar -zxvf autorespond-0.5.1-1.4.tar.gz cd /usr/share/squirrelmail/config ./conf.pl # 選 8. Plugins -> 將 Available Plugins: 內的 autorespond 加入模組
- 安裝 vacation 程式
官方網站:http://www.csamuel.org/software/vacation
直接抓最新版的來裝(目前為1.2.7.1)
cd /tmp
wget http://downloads.sourceforge.net/project/vacation/vacation/1.2.7.1/vacation-1.2.7.1.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fvacation%2Ffiles%2Fvacation%2F1.2.7.1%2F&ts=1351066441&use_mirror=nchc
tar -zxvf vacation-1.2.7.1.tar.gz
cd vacation-1.2.7.1
make
執行make後會產生執行檔 vacation
cp vacation /usr/bin
設定開機自動啟動:
chkconfig dovecot onwebmail網址:http://{host IP}/webmail
chkconfig httpd on
或是
ntsysv
進入services選擇
一開始登入時遇到
ERROR這個錯誤訊息,找了老半天找不出結果,maillog也沒有紀錄,最後查到
Error connecting to IMAP server: localhost.
13 : Permission denied
setsebool httpd_can_network_connect=1
直接下這行就可解決。
檢測config狀況,可以瞭解SquirrelMail 哪邊出狀況
http://{host IP}/webmail/src/configtest.php
最後,我把seLinux關閉,他給我不少困擾....
vi /etc/selinux/config
SELINUX=disabled
reboot
參考:
http://blog.pmail.idv.tw/?p=363
http://www.wretch.cc/blog/jerry0822/13870081
http://www.fedoraforum.org/forum/archive/index.php/t-59291.html
http://www.ichiayi.com/wiki/tech/poppassd
更新日誌:
20121024
- 更新change passwd模組安裝說明。原使用的模組需另外安裝poppassd server,但poppassd遇到密碼中有空白字元時會造成判斷錯誤。
- 新增vacation(auto reply)安裝方式。
發現poppassd有個問題,如果密碼有空白,將會發生錯誤。
回覆刪除這個問題很鳥....
補充說明,改用 vacation 後,可允許空白密碼
回覆刪除另外,由於需使用到ftp功能,但又不想要讓外部存取,故可以在ftp限制只有本機可連入ftp