近期給一個朋友的公司搭建一套郵件服務系統,于是在這方面做了一些調查和選型的工作,對比了諸多郵件服務器的解決方案,最后決定采用 iRedmail (
http://www.iredmail.org/
) 里面所提供的 Postfix + Dovecot + Postfixadmin + Roundcubemail 郵件系統解決方案,原因有兩個:其一,這個解決方案可以說是目前最成熟的 Linux 系統解決方案,性能沒話說,而且完全免費;其二,iRedmail 提供的安裝腳本可以幫助我們快速的在 Linux 系統上安裝整套系統,能節省我們不少時間~
下面花時間整出一張系統結構圖,主要描述了這個系統的一些原理的要點:
對上圖簡單說明一下,這套系統在 Server Layer 我們使用 Postfix + Dovecot + Amavised + Policyd 的強力組合,基本上對收發郵件過程中的身份驗證(POP3 / IMAP),內容過濾(Amavisd)以及收發策略(Policyd)等功能都作了覆蓋,在 Postfix 的主要配置文件中我們把這些套件全部做了整合,配置內容如下:
... ...
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unlisted_recipient, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, check_policy_service inet:127.0.0.1:10031
smtpd_sasl_security_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
... ...
#
# Uncomment the following line to enable policyd sender throttle.
#
#smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:10032
mailbox_command = /usr/libexec/dovecot/deliver
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = dovecot-auth
content_filter = smtp-amavis:[127.0.0.1]:10024
... ...
以下我們簡要敘述一下在 CentOS 系統上的安裝過程,以便日后參考:
> 前期安裝準備工作
假設我們要配置域名 hostname 的郵件服務器,那可以先把域名 hostname 的 MX 記錄設置為我們服務器的 IP
如果是內部 mail 服務器,那么則需要配置 DNS 服務器,不再贅述。
# hostname -f
# vi /etc/sysconfig/network
...
HOSTNAME=hostname
...
# vi /etc/hosts
...
127.0.0.1 hostname localhost localhost.localdomain
...
> 安裝 iRedMail 系統
# 配置好 CentOS 5.x 的 YUM
# 從官網下載 iRedMail-0.6.1.tar.bz2
# tar jxvf iRedMail-0.6.1.tar.bz2
# cd iRedMail-0.6.1
# vi conf/global (如果使用系統已裝的Apache+Mysql+Php包)
...
export USE_EXIST_AMP='YES'
...
# vi conf/mysql (如果使用系統已裝mysql包)
...
export MYSQL_FRESH_INSTALLATION='NO' # <- Set to 'NO' so that iRedMail won't install mysql-server.
export MYSQL_SERVER='192.168.122.249' # <- MySQL server address.
export MYSQL_PORT='3306' # <- MySQL server port.
export MYSQL_SOCKET='/var/lib/mysql/mysql.sock'
export MYSQL_ROOT_USER='root' # <- MySQL root user, iRedMail will use it to import some databases.
export MYSQL_ROOT_PASSWD='secret' # <- MySQL root user's password.
...
# cd pkgs/
# chmod +x get_all.sh
# ./get_all.sh
# cd ..
# chmod +x iRedMail.sh
# ./iRedMail.sh
...
然后就是按照界面操作了,注意我們推薦你選擇更加靈活的 Mysql 數據存儲方式。
具體安裝過程見:
http://code.google.com/p/iredmail/wiki/Installation
。
...
使用 mysql 管理郵件,比如數據庫為 (假設為 vmail)。
安裝完后可以使用 phpmyadmin 工具方便管理數據庫 (phpmyadmin 配置過程略)。
若 dovecot 未啟動,則檢查 /etc/dovecot.conf 以及 /etc/dovecot-mysql.conf 并正確配置 mysql 數據庫 (與 postfix 數據庫一致即可,假設為 vmail)。
...
> 配置 Apache 郵件應用
這里一定用到的應用包括 phpmyadmin,postfixadmin 和 Roundcubemail。
配置文件都在 /etc/httpd/conf.d/ 下:php.conf,phpmyadmin.conf,postfixadmin.conf,roundcubemail.conf 一般是不需要動的。
唯一可能有問題的是需要把 httpd.conf 里的 User 和 Group 設置一下 (這時候默認是 vmail 用戶),還有要把 /var/www 下所要用到的目錄權限設置一下 (全部設置為 vmail 用戶)。
> 使用 postfixadmin 管理域名
# cd /var/www/postfixadmin/
# 開啟 setup.php 的權限,然后直接 web 界面操作。
# 配置 config.inc.php (以及 config.local.php) 添加管理員用戶,注意 db 的地址必須和 iRedMail 安裝時的數據庫 (假設為 vmail) 一致。
# 登錄 http://hostname/postfixadmin/ 建立域名,新建用戶 (假設為 james@hostname)。
> 使用 Roundcubemail 管理用戶郵件
# cd /var/www/roundcubemail
# chmod -R 755 installer
...
然后使用 http://hostname/webmail/installer/ 直接進入 web 安裝頁面,具體的配置文件在 config/ 目錄下,可以配合修改。
...
# 使用前面建立的 james@hostname 用戶登錄,即可收發郵件。
> 注意事項與總結
以下是以上幾個 Mail 組件之間的數據庫結構示意圖,大家可以參考一下:
如果以上的安裝過程順利,再把防火墻配置一下,那么我們就可以正常使用這個郵件系統來收發郵件了。需要注意的是:在這個過程中要注意如果你的服務器上原本就裝有可能起沖突的軟件,iRedmail 會把這些部件更新,并備份/覆蓋原先的配置文件,有可能被覆蓋的配置文件包括:/etc/postfix/main.cf,/etc /dovecot.conf,/etc/my.cnf,/etc/php.ini,/etc/httpd/conf.d/* 等等。所以安裝之前最好把可能沖突的正在運行的服務關掉,并作好一切準備工作才可以,否則 “后果很嚴重” 哦。當然最好是拿一臺干凈的機器安裝啦,不過現實還是 “很殘酷” 的啊 ...
另外,如果遇到一些由于環境引起的錯誤,要根據具體情況進行排錯處理。比如 Dovecot 啟動不起來,則要檢查 /etc/dovecot.conf 以及 /etc/dovecot-mysql.conf 配置文件;如果還有數據庫沒有建立完整,這個也必須要注意一下,假設我們都使用 mysql 來存儲數據,那么在配置的時候一般是 Postfix,Dovecot 和 Postfixadmin 共用一個數據庫(默認為 vmail),而 Roundcubemail 有自己的數據庫 roundcubemail,一般來說第一次登錄 Roundcubemail 的時候,它會去本地的 IMAP 端口檢查用戶登錄信息(實際上在這里就是從 vmail 庫中去查),查到后 Roundcubemail 會把這個用戶的信息更新到自己的數據庫中,然后進行郵件的管理。郵件數據的具體地址在 /etc/postfix/main.cf 中設置,默認在 /var/vmail/vmail1/hostname/username/Maildir/ 下。
PS:Roundcubemail 的界面很絢麗哦,Enjoy yourselves ~
[郵件] Postfix + Dovecot + Postfixadmin + Roundcubemail 企業郵件解決方案
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
