RHEL 5.2下SendMail+dovecot郵件系統(tǒng)配置教程
原創(chuàng)電子郵件系統(tǒng)對(duì)于一個(gè)企業(yè)的作用相信已經(jīng)沒(méi)有人不知道,目前比較主流的郵件系統(tǒng)包括SendMail、exchange、Lotus Notes、Qmail、Postfix等。
Microsoft的Exchange只能運(yùn)行在Windows平臺(tái),而且必須基于活動(dòng)目錄,雖然在功能上exchange的確有一定的優(yōu)勢(shì),比如用戶管理、與office等微軟其它產(chǎn)品的高集成性等等,但運(yùn)營(yíng)成本過(guò)高。
Lotus Notes作為IBM產(chǎn)品性能、功能當(dāng)然是不用說(shuō)了,不過(guò)本人總認(rèn)為IBM的產(chǎn)品都有一個(gè)共同的特點(diǎn),那就是只有運(yùn)行在IBM的軟、硬件平臺(tái)時(shí)才能將其功能***化的發(fā)揮出來(lái)。
SendMail可以運(yùn)行在幾乎所有的類(lèi)Unix平臺(tái),功能也比較強(qiáng)大。當(dāng)然SendMail也有一些自身的問(wèn)題,但隨著其版本的升級(jí)很多方面已經(jīng)有了很大的改善。
本文中主要介紹在RHEL 5.2下通過(guò)SendMail搭建一個(gè)郵件系統(tǒng)平臺(tái),并結(jié)合dovecot實(shí)現(xiàn)pop3/IMAP4以及通過(guò)OpenWebMail實(shí)現(xiàn)客戶端通過(guò)瀏覽器訪問(wèn)郵件系統(tǒng)。在講述過(guò)程中采用以下網(wǎng)絡(luò)拓?fù)洹?/P>
一、安裝并配置DNS。
DNS的作用相信也不需要過(guò)多介紹了,如果企業(yè)的郵件服務(wù)器如果需要接收來(lái)到公網(wǎng)的郵件,需要擁有公網(wǎng)IP及域名,而DNS解析工作都是有ISP提供的。在本文的配置中假設(shè)該郵件系統(tǒng)只供企業(yè)內(nèi)部使用,所以需要配置DNS。
1、安裝bind及相關(guān)軟件包。
yum -y install bind-chroot.i* caching-nameserver.i* |
2、在/var/named/chroot/etc目錄下有一個(gè)全局配置的例子文件,將其復(fù)制一份改名為named.conf。如下圖復(fù)制時(shí)一定要加-a(或-p),如果全局配置文件的擁有組不是named時(shí),BIND服務(wù)是無(wú)法運(yùn)行的。
3、編輯named.conf文件,修改如下圖所示位置。
4、在/var/named/chroot/etc目錄下有一個(gè)主配置的例子文件,將其復(fù)制一份改名為example.zqin.zone。如下圖復(fù)制時(shí)一定要加-a,如果主配置文件的擁有組不是named時(shí),BIND服務(wù)是無(wú)法運(yùn)行的。
5、在example.zqin.zones文件最尾部加如下圖內(nèi)容。
6、在/var/named/chroot/var/named中正向、反向各有一個(gè)例子,將這二個(gè)例子復(fù)制一份進(jìn)行修改,如下圖復(fù)制時(shí)一定要加-a,因?yàn)槿绻麉^(qū)域配置文件的擁有組不是named時(shí),BIND服務(wù)是無(wú)法運(yùn)行的。
7、編輯正向解析文件example.zqin.zero,加入如下圖內(nèi)容。
8、編輯反向解析文件0.168.192.local,加入以下圖內(nèi)容。
9、啟動(dòng)bind并將其設(shè)置為自動(dòng)運(yùn)行。service named restart |
#p#
二、SendMail常規(guī)配置
SendMail運(yùn)行過(guò)程是讀取/etc/mail/sendmail.cf配置文件,但該文件配置比較復(fù)雜,所以一般是配置/etc/mail/sendmail.mc,然后通過(guò)以下命令生成sendmail.cf文件(每次修改sendmail.mc后都必須通過(guò)使用該命令后再重啟sendmail服務(wù),否則配置不會(huì)生效)。
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
在/etc/mail/sendmail.mc文件對(duì)格式要求非常嚴(yán)格:
每句左邊不能有空格
區(qū)分大小寫(xiě)
注釋在最左邊加dnl
每句必須以dnl結(jié)束
增加的語(yǔ)句,不能在***一行
語(yǔ)句中的引號(hào),如下圖
1、安裝bind及相關(guān)軟件包。
yum -y install sendmail-cf.i* sendmail-doc.i* |
2、SendMail在默認(rèn)只偵聽(tīng)127.0.0.1,此處要修改為偵聽(tīng)指定網(wǎng)絡(luò)接口或0.0.0.0(本機(jī)所有IP)
3、增加本服務(wù)器可處理的FQDN或區(qū)域名(只有在列表的本服務(wù)器才處理)。這需要修改/etc/mail/local-host-names文件。
4、執(zhí)行以下步驟后SendMail即可收發(fā)郵件。
到此一個(gè)最簡(jiǎn)單的郵件系統(tǒng)已經(jīng)通過(guò)SendMail實(shí)現(xiàn)了,下面來(lái)看看如何通過(guò)telnet命令測(cè)試郵件系統(tǒng)是否可以正常工作。
在linux字符模式中收取當(dāng)前用戶收件箱內(nèi)容使用mail命令。
#p#
三、SendMail其它配置
1、SendMail本地別名
SendMail可以通過(guò)本地別名實(shí)現(xiàn)以下功能郵件轉(zhuǎn)發(fā)、郵件組等功能,配置時(shí)用戶必須是本地郵件用戶。實(shí)現(xiàn)時(shí)需要編輯/etc/aliases文件,其方法如下圖:
user1的郵件轉(zhuǎn)發(fā)一份user2。
user3的郵件轉(zhuǎn)發(fā)給user4,user3收不到。
發(fā)送給hr(系統(tǒng)中沒(méi)有這個(gè)用戶)的郵件user5及user6可收到。
2、SendMail虛擬別名
SendMail可以通過(guò)本地別名實(shí)現(xiàn)以下功能郵件轉(zhuǎn)發(fā)等功能,配置時(shí)用戶可以任意,該功能可以將郵件轉(zhuǎn)發(fā)到外部區(qū)域。實(shí)現(xiàn)時(shí)需要編輯/etc/mail/virtusertable文件,其方法如下圖:
1:發(fā)送給user5@example.zqin郵件轉(zhuǎn)發(fā)到onlyzq@gmail.com。
2:發(fā)送給admin@test.zqin的郵件轉(zhuǎn)發(fā)到administrator@test.zqin。
3:所有發(fā)送給temp.zqin區(qū)域的郵件全部轉(zhuǎn)發(fā)到user6@example.zqin。
4:所有發(fā)送給tmp.zqin的郵件轉(zhuǎn)到對(duì)應(yīng)%1@gmail.com,%1表示收件人。
3、SendMail地址偽裝
SendMail對(duì)本服務(wù)器所有發(fā)出的郵件進(jìn)行地址偽裝(自動(dòng)修改發(fā)件人地址)。
全局偽裝
全局偽裝針對(duì)所有本區(qū)域用戶,此功能需修改/etc/mail/sendmail.mc文件,下面的例子中所有發(fā)住外部區(qū)域的郵件收件人所有區(qū)域自動(dòng)修改為zhangqin.com:
MASQUERADE_AS(`zhangqin.com’)dnl #復(fù)制修改為要偽裝的域名 |
指定用戶偽裝
指定用戶的地址偽裝,該功能只能用于收件人是外部域。這個(gè)可以和全局地址偽裝同時(shí)使用。下面的例子中將所有user7@example.zqin發(fā)出的郵件發(fā)件人修改為zhangqin@rhel.com。
修改/etc/mail/sendmail.mc文件。
FEATURE(genericstable)dnl #需要輸入,genericstable文件需要新建 |
建立用戶列表。
在lost-hosts-names中加入虛擬區(qū)域名稱
4、SendMail訪問(wèn)控制
通過(guò)/etc/access可以對(duì)通過(guò)SendMail的郵件流進(jìn)行控制,其對(duì)郵件流通過(guò)的動(dòng)作主要有以下幾種:
From:發(fā)件人是其它域,收件人是當(dāng)前域
To:發(fā)件人是當(dāng)前域,收件人是其它域
Connect:發(fā)件人、收件人都是其它域
中繼限制可用動(dòng)作:
REJECT:拒收并發(fā)退信通知
OK:無(wú)條件接收,當(dāng)與REJECT發(fā)生沖突時(shí)優(yōu)生
RELAY:接收,當(dāng)與REJECT發(fā)生沖突時(shí)REJECT優(yōu)先
DISCARD:拒絕
ERROR:550 your message:拒絕,返回特定通知
下圖是一個(gè)/etc/access文件的例子:
#p#
四、Dovecot常規(guī)配置
SendMail只能實(shí)現(xiàn)SMTP協(xié)議的功能,而目前在使用郵件系統(tǒng)時(shí)很多用戶還是習(xí)慣使用類(lèi)似foxmail的一些郵件客戶端軟件,這些軟件通常都支持pop3、IMAP4等協(xié)議。如果希望在RHEL中實(shí)現(xiàn)pop3、IMAP4需要使用dovecot。
安裝
1、安裝dovecot軟件包。
yum -y install dovecot.i* |
2、dovecot配置比較簡(jiǎn)單,通常只需修改Dovecot修改支持的協(xié)議即可。在/etc/dovecot.conf中已有,只需取消注釋即可(如下圖)。
3、啟動(dòng)dovecot并將其設(shè)置為自動(dòng)運(yùn)行。
service dovecot restart |
五、配置POPs&IMAPs
pop3及IMAP4協(xié)議都是采用明文方式進(jìn)行數(shù)據(jù)傳輸,不過(guò)可以通過(guò)SSL對(duì)其數(shù)據(jù)傳輸進(jìn)行加密
。配置方法如下:
1、在/etc/pki/tls/certs目錄下輸入以下命令生成密鑰(dovecot.pem只是文件名可任意)。
編輯/etc/dovecot.conf文件,加入下圖內(nèi)容:
在dovecot配置完成后可以通過(guò)mutt命令對(duì)pop3/pops及imap/iamps進(jìn)行測(cè)試。具體方法如下:
1、使用POP3方法驗(yàn)證Dovecot
mutt -f pop://user@server[:port]
mutt -f pops://user@server[:port]
輸入命令可通過(guò)pop(如使用pops方式,將下圖命令中pop改為pops即可)方式收取郵件,注意是接服務(wù)器名稱。
mutt -f pop://user2@golf.example.zqin |
輸入用戶密碼
進(jìn)入后可看到該用戶的郵件
在上、下移動(dòng)選擇郵件回車(chē)可查看。
2、使用IMAP4方法驗(yàn)證Dovecot
mutt -f imap://user@server[:port]
mutt -f imaps://user@server[:port]
輸入命令可通過(guò)imap(如使用pops方式,將下圖命令中pop改為pops即可)方式收取郵件,注意是接服務(wù)器名稱。
mutt -f imap://user2@golf.example.zqin |
輸入”o”同意開(kāi)始通過(guò)imap連接服務(wù)器
進(jìn)入后輸入用戶密碼,可看到該用戶的郵件在上、下移動(dòng)選擇郵件回車(chē)可查看。
#p#
六、OpenWebMail常規(guī)配置
對(duì)于一個(gè)完整的郵件系統(tǒng),提供用戶通過(guò)瀏覽器訪問(wèn)是一個(gè)必不可少的功能,而使用OpenWebMail為用戶提供該功能也是很不錯(cuò)的選擇。不過(guò)在RHEL中默認(rèn)并沒(méi)有提供OpenWebMail的軟件包,只有從www.openwebmail.com網(wǎng)站或從其它rpm包下載網(wǎng)站下載。OpenWebMail需要使用到apache、perl-Text-Iconv、perl-suidper軟件包。
1、安裝OpenWebMail及相關(guān)軟件包。
yum -y install httpd.i* |
2、將配置文件/var/www/cgi-bin/openwebmail/etc/dbm.conf的內(nèi)容修改為以下內(nèi)容。
db_ext .db |
3、使用以下命令初始化OpenWebMail。
4、修改相關(guān)默認(rèn)配置,編輯/var/www/cgi-bin/openwebmail/etc/openwebmail.conf文件。
default_language zh_cn gb2312 將預(yù)設(shè)語(yǔ)言改為簡(jiǎn)體中文。
default_iconset Cool 3D.Chinese.Simplified 將原有的English改為Chinese.Simplified,才能顯示中文圖標(biāo)。
domainnames example.zqin 更改為自己定義的域名。
smtpserver 192.168.0.14 更改smtp服務(wù)器的地址。
authpop3_server 192.168.0.14 更改pop3服務(wù)器的地址。
auth_module auth_unix.pl 將用戶認(rèn)證方式改為使用/etc/passwd及/etc/shadow文件。
通過(guò)http://mail.example.zqin/cgi-bin/openwebmail/openwebmail.pl就可以訪問(wèn)到openwebmail了(如下圖)。
5、很顯然這個(gè)地址太長(zhǎng)了,可以/etc/httpd/conf/httpd.conf文件中增加如下內(nèi)容后,可通過(guò)http://mail.example.zqin/mail就可以訪問(wèn)了。
ScriptAlias /mail /usr/local/apache/cgi-bin/openwebmail/openwebmail.pl |
6、設(shè)置用戶配額,在/var/www/cgi-bin/openwebmail/etc/openwebmail.conf中最尾幾行是配額的例子,下面是相關(guān)參數(shù)的作用。
quota_module quota_unixfs.pl quota的模板,由于郵件帳戶還是Linux帳戶,所以選它
spool_limit 5120 郵箱限定5M
quota_limit 10240 所有空間(包括郵箱)限定10M
quota_threshold 70 空間使用達(dá)到配額的70%就提示
delmail_ifquotahit no 是否在空間使用超出配額時(shí)刪除舊的郵件
delfile_ifquotahit no 是否在空間使用超出配額時(shí)刪除舊的文件
到此整個(gè)郵件環(huán)境已搭建完成,不過(guò)這些只能算是***步,對(duì)于一個(gè)成熟的郵件系統(tǒng)還有很多工作要做。永遠(yuǎn)都要記住郵件系統(tǒng)是貌似簡(jiǎn)單但實(shí)際維護(hù)量非常大的應(yīng)用系統(tǒng)。比如防止垃圾郵件、病毒郵件、用戶行為控制等等,這些將會(huì)在后繼的文章中為大家講解。
【編輯推薦】






