昆山郵件服務(wù)器系統(tǒng)Linux解決方案
產(chǎn)品介紹
昆山郵件服務(wù)器系統(tǒng)Linux mail解決方案詳解;Qmail
(一)
qmail是目前使用最廣泛的一種,基本上各種要求的功能都會有相應(yīng)的軟件配套支持。它的缺點是太散亂,缺乏集成,用項目的話來說就是不干凈,缺乏 歸檔集成。對于大型ICP,ISP等有固定的管理人員或者不算是一個缺點,但對于一般的公司客戶,它的日常管理配置工作就顯得太夸張了。另一方面,對于大 型的高級應(yīng)用,Qmail的功能和發(fā)展余地都有所欠缺。
二、 Linux mail解決方案詳解;
1、qmail方案;(Qmail+vpopmail+mysql+ucspi-tcp)
a) 簡述:
qmail 是目前使用最廣泛的一種,基本上各種要求的功能都會有相應(yīng)的軟件配套支持。它的缺點是太散亂,缺乏集成,用項目的話來說就是不干凈,缺乏歸檔集成。對于大 型ICP,ISP等有固定的管理人員或者不算是一個缺點,但對于一般的公司客戶,它的日常管理配置工作就顯得太夸張了。另一方面,對于大型的高級應(yīng)用, Qmail的功能和發(fā)展余地都有所欠缺。
Qmail是否易于配置使用,分歧頗大。實際情況是,如果要求相當(dāng)簡單、單一,qmail的使 用相當(dāng)簡單,網(wǎng)上基本上有成功的例子供你照搬,但如果要求復(fù)雜起來,象需要使用mysql或ldap,需要imap,需要smtp auth,需要虛擬域,需要web界面等等,以上任一兩個功能都不難實現(xiàn),但全部要實現(xiàn),就會發(fā)現(xiàn)實際成功的例子很少,一般是沒有。原因就在于qmail 的散亂和缺乏集成,各個軟件以qmail為藍(lán)本打補丁,互不配合,等到必須互相配合才能形成功能時,難度便突然加大,以至成功的案例卻不算太多。事實上, 由于多個補丁來自各自截然不同的開發(fā)組團(tuán),以至于經(jīng)常出現(xiàn)指定補丁的基礎(chǔ)版本不一,連編譯也過不去,程序語法出現(xiàn)嚴(yán)重的錯誤的并不少見。
Qmail 本身集成了pop3d,但只提供了使用其本身的cdb存儲帳號的方法,而沒有提供使用其他的方法。其次,qmail本身不提供網(wǎng)絡(luò)監(jiān)聽,所以所有的服務(wù), 包括pop3d必須通過tcpserver才能啟動。這種啟動的復(fù)雜性,導(dǎo)致了五花八門的輔助工具,進(jìn)一步加大了使用Qmail的復(fù)雜性。
因此, 使用QMAIL很難滿足在提供smtp auth\pop3\imap的工作條件,同時不能使用系統(tǒng)帳號。已有的聲稱可以使用courier IMAP提供在qmail+vpopmail基礎(chǔ)上提供IMAP服務(wù)的的方法,許多其實作者自已都沒有弄出來,事實上,它必須修改courier IMAP的代碼。要求的額外性能,其實是新的公共協(xié)議的要求,Qmail所要求的補丁就越多,問題就越顯得復(fù)雜。
Qmail方案最大的毛病就是特 定功能的補丁太多,加上補丁自已有版本,打上幾重補丁,到底譜系繼承誰是誰非,怕是誰都說不清,加上各個補丁本身帶有版本,不同的版本相互間基本上是無效 的,復(fù)雜性也就呈級數(shù)增加。所以對Qmail系統(tǒng)的性能要求一高,Qmail的可用性就越差。
最根本的原因就是Qmail的作者的設(shè)計目標(biāo)僅是提 供主機級的郵件服務(wù),也就是在小組網(wǎng)內(nèi)專用于維護(hù)的那種mail,因此,當(dāng)Qmail用于更高級的互聯(lián)網(wǎng)通信時,立刻就不合用了;其次,Qmail奇怪的 版權(quán)模式限制了對Qmail的有效改進(jìn),其他人只能以打補丁的模式增加功能;最后,qmail開發(fā)時就是僅為了系統(tǒng)級代替sendmail而設(shè)計的,居然 連tcp監(jiān)聽也沒有考慮,(換言之,作者開始很可能沒有考慮到要把mail發(fā)到主機以外),qmail要工作,必須另外一個輔助軟件ucspi-tcp提 供網(wǎng)絡(luò)監(jiān)聽,更不用提smtp-auth了。
優(yōu)點:
應(yīng)用案例和參考文章都比較多;
使用時間較長,功能較全、較穩(wěn)定
缺點:
文檔方面偏向于簡單的多,復(fù)雜可用的方案文檔很少(變相反映出成功的案例不多);
新的先進(jìn)的標(biāo)準(zhǔn)和協(xié)議支持不夠;
缺乏堅實的系統(tǒng)機制支持;
架構(gòu)散亂,本質(zhì)上是一大堆補丁程序補出來的產(chǎn)物;
極度缺乏集成;
對ESMTP嚴(yán)重缺乏支持。
總結(jié):適合中小型的簡單應(yīng)用,但與sendmail相比是50步笑100步而已。建議大型應(yīng)用或產(chǎn)品方案,堅決避免使用qmail作為基本解決方案。
適用:a,b,c,g四種類型;
b) 基本功能指標(biāo);
i. POP3,STMP服務(wù);
ii. POP3及SMTP使用同一帳號進(jìn)行認(rèn)證;
iii. 支持SMTP認(rèn)證功能;
iv. 使用mysql存貯郵件帳號;
v. 支持虛擬主機;
vi. 提供命令行維護(hù)工具;
vii. 提供簡易Web界面維護(hù)工具;
viii. 提供用戶自我維護(hù)工具;
ix. 提供Webmail工具;
c) 需要軟件:
Qmail-1.03 MTA工具;
Vpopmail5.0 郵件域、賬號、密碼管理工具;
Mysql 存貯用戶帳號資料;
Ucspi-tcp 提供網(wǎng)絡(luò)監(jiān)聽;
Chekpassword 提供訪問認(rèn)證;
可選:
daemontools, 提供Daemon維持性能;
sqsignup, 提供用戶自行申請帳號功能,對免費Email有用;
webadmin, 提供用戶自我管理,如修改密碼功能;
passwordmd5; 支持MD5密碼;
重要的工具和概念——patch:
由Larry Wall提供的diff:patch工具,被Larry Wall本人認(rèn)為較發(fā)明Perl更重要的作品。實際上patch也確實是Linux成長過程中最重要的因素之一。Diff 用于對比文件和目錄(含包含的文件)的不同,并把輸出存為patch格式;而patch命令是diff的反向命令,使用patch可以使用文件及目錄回復(fù) 到原來的模樣。
#diff -c -r dir1 dir2 > 1.2.patch
將生成一個1.2.patch的文件;在與dir2一樣的目錄中運行
#patch < 1.2.patch
將獲得dir1一模一樣的目錄和文件。通過這一工具,可以令系統(tǒng)不停的升級,這也是Linux升級內(nèi)核而不是重裝的重要途徑。
Patch的成功,最重要的因素是保證dir1,dir2目錄的一致,如果兩者基礎(chǔ)不一致,patch是沒有意義的。這也是目前網(wǎng)上補丁程序失敗的重要原因,關(guān)鍵就是版本不一致,缺乏版本的管理。
d) 系統(tǒng)架構(gòu);
i. vpopmail
Vpopmail提供域管理,帳號管理,用戶認(rèn)證,負(fù)責(zé)使用外置存貯工具存貯用戶帳號的功能實現(xiàn)。它不是必須的,但卻是繁雜的Qmail方案的有效簡化工具,因為減少了補丁的使用,而提供了可靠性。類似的軟件還有vMailMgr。
ii. ucspi-tcp;
UCSPI-TCP是一個非常重要的工具,它令Qmail能在主機以外真正提供郵件服務(wù)。Qmail本身不帶網(wǎng)絡(luò)監(jiān)聽,如果要把信發(fā)到主機以外,需要補丁軟件,一般是ucspi-tcp,也就是tcpserver命令。象命令:
#tcpserver /var/qmail/bin/qmail-popup xxx.com /var/qmail/bin/auth_pop /var/qmail/bin/qmail-pop3d "Maildir" &2<1
如 此長長的一串,說的是tcpserver通知qmail-popup向xxx.com提供pop應(yīng)聽服務(wù),由auth_pop進(jìn)行口令驗證,pop服務(wù)由 qmail-pop3d提供。理論上,也可以讓tcpserver讓其他進(jìn)程也提供網(wǎng)絡(luò)服務(wù)。如果有其他方法提供用戶口令認(rèn)證,就把auth_pop更 替,象checkpassword,vchkpw之類。啟動smtp也是如此類推。
iii. checkpassword;
checkpassword是必須的,但最終只要它的一個程序,它作為一個補丁存在,不用它,無法提供smtp auth功能,打完補丁后,又要把主要功能讓給如vpopmail的vhkpw進(jìn)行。由此可見Qmail體系的混亂。
使 用checkpassword和相應(yīng)的patch,令qmail使用系統(tǒng)帳號實現(xiàn)pop3和smtp認(rèn)證;然后再使用vpopmail的vchkpw作為 checkpassword的補丁令qmail不使用系統(tǒng)帳號。最后,由vchkpw完成與外置數(shù)據(jù)庫存儲的帳號的存取和認(rèn)證工作。理論上可以使用其他數(shù) 據(jù)庫,包括oracle和ldap,oracle估計是可以的,但必要性不大,而vchkpw使用ldap根本上是一個失敗的項目。連作者自已也承認(rèn),這 東西動不了。
昆山郵件服務(wù)器系統(tǒng)Linux mail解決方案詳解;Qmail-(二)
由于qmail的安裝是多個補丁的次序替補,所以順序是非常重要的。
安裝:
由于qmail的安裝是多個補丁的次序替補,所以順序是非常重要的。
首先是安裝qmail。Qmail安裝前必須生成兩個指定組nofile及qmail,以及七個用戶,分別是alias,qmailr,qmaild,qmails,qmailq,......我也忘了,看INSTALL!
#make setup check后
#./config
在 配置時需要配置默認(rèn)的傳遞域和主機rcphost,(記得第一節(jié)第2點說到的主機和工作組郵件嗎?),這時Qmail會通過DNS正向和逆向查詢域名和 IP,填入配置文件中。實際上,都于打算用于因特網(wǎng)的使用者來說,這一步是不必要的,(你說DJB是不是閑著沒事干?多此一舉),但少了它Qmail還干 脆罷工。在此前,甚至連BIND8也不能滿足它的要求。如果不配的話會如何?那么當(dāng)你在客戶端發(fā)信時,就很可能得到550 error, you do not in rcphost list這樣的錯誤。要跳過去的話也可以,可以手工生成rcphost,me, defaultdomain, hostname這樣幾個文件。
不過,DJB這樣干也是有道理,眾所周知,垃圾郵件是一大公害,如果不這樣,郵件服務(wù)器就變成 openrelay,開放傳遞,不但你的IP被列進(jìn)黑名單,而且垃圾郵件會塞得你的郵件服務(wù)器不能工作。但只有劣等管理員才不能防垃圾郵件,一個簡單有限 的辦法就是使用smtp auth。
使用smtp auth的辦法是打checkpassword補丁。這里要注意,有兩種方法進(jìn)行補丁,但只有一種是支持多域名的。請參考有關(guān)文檔。由于smtp auth和pop auth均由checkpassword提供,所以實現(xiàn)了pop和smtp使用同一密碼的功能。 必須安裝Ucspi-tcp才可以提供網(wǎng)絡(luò)服務(wù),在啟動服務(wù)時指定必須使用smtp auth,及popauth。
安裝vpopmail時注意:安裝程序會檢測vpopmail用戶,并把vpopmail安裝在vpopmail的HOME目錄。Vpopmail在安裝 時自動在數(shù)據(jù)庫中生成數(shù)據(jù)表格,但需要在安裝前在vmysql.h中指明數(shù)據(jù)庫的地址、名稱、用戶、密碼。
Sqsighup、sqwebadmin、sqwebmail都是PHP或CGI程序,修改并不困難,其中sqwebadmin是專門配合vpopmail的mysql方案的。
c) 系統(tǒng)管理:
系統(tǒng)管理由三級組成:
i. qmail命令行工具:典型如makemaildir,生成maildir的目錄;還有如qmail-ldaplookup,在使用ldap方案時是非常重要的工具。但在使用vpopmail時,這些工具被全面取代。
ii. vpopmail命令行工具:如vadddomain,vadduser,vpasswd等,幾乎是最重要的管理工具之一。
iii. sqsignup,sqwebmail,是用戶自我管理和webmail,除sqwebmail中的修改密碼功能,其它不是必須的。用戶也可以自已開發(fā)修改密碼的程序,不算太高。
d) LDAP實現(xiàn):
有 三種方法,一是直接使用qmail+ldap方案,這在lifewithqmail/ldap中有詳盡的說明,但不精確;二是使用qmail+ vpopmail+ldap方案,簡單不少,但程序有問題;三;使用Curier IMAP的LDAP功能,但這樣沒有必要,因為Courier IMAP與Coureir MTA配合更佳,而且沒有補丁,功能齊全。
方法一:qmail+ldap;
需要軟件:
qmail-1.03
qmail-ldap-patch
ucspi-tcp
checkpassword
qmail-ldap-control-patch
qmail-ldap-smtp-auth-patch
基本同前者,只是ldap代替了mysql,而棄置了vpopmail。
這 套方案最關(guān)鍵的一條是使用qmail-ldap-patch。但這套補丁2000年以后的版本有很大的BUG,最基本的一條就是auth-pop.c 調(diào)用commands.c調(diào)用qldap-lookup錯誤;蛘咦髡咦砸褭C上是可以用的,但它用于對比的版本不知是何年何月的,總之得出的patch是 狗屁不通,要用者,自已順藤摸瓜改程序吧。粗略估計一下,大約要改幾百行程序。
過了這一關(guān),也是問題,安裝時可以改程序,總不能每次系統(tǒng)管理也要 程序吧?lifewithqmail/ldap建議使用qmail-ldap-control補丁,不過要使用這個補丁,又要再改一次程序,又是幾百行。 而且,這個補丁不但難打,而且打完后,象一些核心如qldap-lib.c程序,語法錯得慘不忍睹,這一關(guān),我過不了。如此下去,就算僥幸裝上了,升級換 代也是困難,還不如我自已開發(fā)一套算了。
這樣使用LDAP上,是十分不劃算的。
方法二:使用vpopmail+ldap;
另一種方案是qmail+ldap+couire IMAP,該文的參考文檔http://www.cerritoslug.org/tutorials/qmail-ldap/installing.html
這種方案避免了使用tcpserver啟動pop3,從而避免了前文所述的錯誤。是唯一可行的方案。但沒有太大的價值,因為主要的工作完全由Courier IMAP完成,Courier MTA本身就不差,沒有必要另用qmail。
b) IMAP實現(xiàn):
要完成courier IMAP合成qmail、vpopmail,需要修改程序代碼,但幾乎所有的中文文檔,都僅是說make,make install,所以我覺得他們就算是報成功安裝,也不可能運行的。
針對我們使用MYSQL進(jìn)行認(rèn)證的方案,可以配置Courier IMAP使用同一個mysql記錄表,通過定義修改字段讓它訪問vpopmail的Maildir目錄,可以較易實現(xiàn)coureir IMAP集成的目的。
但如前所說,既然用到Courier IMAP,就沒有必要再用Qmail自討若吃了。
c) TLS實現(xiàn);
無法使用TLS,就算可以,無非是再加一重補丁,一個軟件要打上四五重補丁,然后digbug,叫DJB自已來干好了。建議不必再考慮TLS。
d) 缺陷和開發(fā)余地;
qmail最大的問題,就是越來越多的核心功能不是通過集成,而是通過補丁來實現(xiàn),關(guān)鍵可能就在于DJB制定的版權(quán)標(biāo)準(zhǔn)不太合乎邏輯。除著技術(shù)標(biāo)準(zhǔn)的進(jìn)步,這個缺陷會越來越致命,相信,很快,整個qmail體系都會不得得被拋棄。
Linux mail解決方案詳解; postfix方案
與qmail相比,postfix顯得規(guī)范許多,而且它與Cyrus sasl配合緊密,不象qmail那樣的亂七八糟的程序堆在一起。但postfix體系的缺點是周邊軟件不成熟,缺乏嚴(yán)格的集成測試,甚至連安裝程序都存 在低級錯誤,要修改過才行。而且,postfix大量使用一些較新的linux技術(shù),如sasl, pam, cyrus imap,Berkeley DB等,偏偏這些技術(shù)合在一起使用的先例極少,升級版本差距太大,相互間集成不便,要把它們集成在一起形成一個整體可用的,符合要求的系統(tǒng),簡直就是一場 地獄旅行。但一般說來,如果組合成功,效果優(yōu)于qmail。
2、 postfix方案詳解;(postfix+cyrus sasl + mysql+cyrus IMAP);
a) 簡述:
與qmail 相比,postfix顯得規(guī)范許多,而且它與Cyrus sasl配合緊密,不象qmail那樣的亂七八糟的程序堆在一起。但postfix體系的缺點是周邊軟件不成熟,缺乏嚴(yán)格的集成測試,甚至連安裝程序都存 在低級錯誤,要修改過才行。而且,postfix大量使用一些較新的linux技術(shù),如sasl, pam, cyrus imap,Berkeley DB等,偏偏這些技術(shù)合在一起使用的先例極少,升級版本差距太大,相互間集成不便,要把它們集成在一起形成一個整體可用的,符合要求的系統(tǒng),簡直就是一場 地獄旅行。但一般說來,如果組合成功,效果優(yōu)于qmail。
Postfix方案采用的方案遠(yuǎn)較qmail規(guī)范,與linux的系統(tǒng)架構(gòu)較qmail要密切得多,其認(rèn)證的核心pam-sasl,不但是linux內(nèi)核框架標(biāo)準(zhǔn),同時也已經(jīng)是UNIX網(wǎng)絡(luò)通訊的認(rèn)證標(biāo)準(zhǔn)。
作為MTA,postfix本身沒有什么問題,但能夠與postfix集成提供所需功能的Cyrus軟件就有一個大毛病,各版本間沒有遵循新版本向下兼容舊版本的原則。這個會造成初學(xué)者非常困惑的結(jié)果。
優(yōu)點:
技術(shù)先進(jìn),集成度高,與系統(tǒng)底層機制高度集成;
缺點:
缺乏文檔,不同歷史版本間兼容性差。
總結(jié):技術(shù)上較Qmail先進(jìn)一代,基本解決方案具備,也較成熟,缺點是方案較單一,而配套的管理工具不多?偟膩砜,無論是大型還是小型應(yīng)用,postfix都較qmail優(yōu)秀、方便。
適用:適用所有類型。
與qmail不一樣,postfix缺乏充分的配套方案,象qmail本身包括了pop3甚至CDB存儲用戶信息,而postfix就什么也沒有。因此,盡管postfix本身就MTA而言要比qmail更完善,但是作為商業(yè)級的解決方案,仍未十分成熟。
Postfix 目前大致兩種選擇方案可以提供IMAP服務(wù),一種是通過Courier,另一種是通過Cyrus imap。前者沒有找到可以提供有效的smtp auth的方法,后者是通過Cyrus SASL(簡單網(wǎng)絡(luò)認(rèn)證層)實現(xiàn)認(rèn)證,這一認(rèn)證與IMAP一同是卡內(nèi)基-梅濃大學(xué)的產(chǎn)品,本身是完全兼容吻合的。
德國的Patrick Koetter先生完成的安裝文檔How to use smtp auth in combination with TLS in Postfix, (http://howto.state-of-mind.de),及Luc de Louw的Postfix-Cyrus-web-cyradm-HOWto(http://ldp.kernelnotes.de/HOWTO/postfix-Cyrus-web-cyradm-HOWTO),最值得推介。本文以此為基礎(chǔ),在需要更改的部分加以說明。
a) 概念說明:
Cyrus SASL: (簡單網(wǎng)絡(luò)層認(rèn)證),
由卡內(nèi)基-梅濃大學(xué)開發(fā)和制定的網(wǎng)絡(luò)認(rèn)證標(biāo)準(zhǔn),通過標(biāo)準(zhǔn)的SASL函數(shù)庫,可以向任何調(diào)用的網(wǎng)絡(luò)通訊程序提供與任何LINUX上使用的認(rèn)證方式一致的認(rèn)證機制。用戶可以選用適合自已的認(rèn)證機制,如pam, kerbros, ldap等都是允許而且透明的。
SASL將是未來主要的認(rèn)證方式之一。較qmail的checkpassword機制要先進(jìn)得多。
PAM:(Plugin Authentication Module);
linux 社群最富有創(chuàng)造性的成果,令系統(tǒng)認(rèn)證成為一個接口標(biāo)準(zhǔn),可以根據(jù)需要定制認(rèn)證方式,或開發(fā)自已的認(rèn)證方式,同時,PAM可以給任何系統(tǒng)應(yīng)用認(rèn)證調(diào)用,令系 統(tǒng)內(nèi)權(quán)限管理達(dá)到了一個新的等級;PAM較之WINDOWS2000的SAM認(rèn)證機制先進(jìn)得多,而較Active Directory/Kerberos機制簡單得多。
Berkerley DB:
是極小的嵌入式的關(guān)系數(shù)據(jù)庫,實際上是一批關(guān)系數(shù)據(jù)庫化的散列結(jié)構(gòu),不支持SQL,常常作為其他數(shù)據(jù)存儲方案的后臺;如OPENLDAP。在本方案中要用到Cyrus-SASL 2.1,該版本必須基于Berkerley DB4.0 以上的版本支持。
b) 需要軟件:
postfix, Cyrus-sasl 2.1, pam-mysql, mysql,cyrus IMAP, Berkeley DB 4.0。
注意:Cyrus-sasl在redhat系統(tǒng)本身是默認(rèn)安裝的,但在這個地方卻不能用,必須把它御載重新安裝才可以工作,關(guān)鍵是2000端口的sieve進(jìn)程能夠動作。
c) 架構(gòu):
postfix 簡單完成MTA的工作,認(rèn)證工作由Cyrus SASL完成,無論是IMAP還是POP3都由Cyrus IMAP提供,帳號就放置在MYSQL中。Cyrus SASL被配置成基于PAM進(jìn)行認(rèn)證,而第三方程序pam_mysql是完成從mysql到PAM的認(rèn)證模塊插件。這個系統(tǒng)遠(yuǎn)較qmail簡潔一體,我認(rèn) 為技術(shù)含量也更高。
注意事項:
i. 包括Berkerley DB和Cyrus SASL都要裝新的;
ii. Cyrus IMAP程序是基于Debian開發(fā)的,Perl的版本和位置都不一樣,必須手工修改Cyrus-imapd的源代碼目錄perl/imap子目錄中的 Makefile文件,把perl 5.6.1的目錄改到正確的位置。否則cyadmin運行時就出錯,系統(tǒng)無法管理了。
d) 系統(tǒng)管理:
可以使用Cyrus提供的Cyradm命令行工具管理系統(tǒng),這一工具可以異地運行管理,非常好。也可以使用web-cyradm第三方軟件,但這個軟件寫得很臭,包括不能讓客戶自已修改密碼。建議自已修改后再用。
郵箱:可以選擇Maildir或是Maibox形式。我覺得使用Mailbox形式在提供IMAP時增加新郵箱很方便。
e) 虛擬主機:
可以直接在postfix下配置虛擬主機,在輔助的courier或cyrus中也可相應(yīng)配置成多域系統(tǒng)。
f) LDAP:
使用pam-ldap可以配置系統(tǒng)使用ldap認(rèn)證取代pam_mysql;但還必須給Cyrus-imap打上LDAP補丁,才可以讀取ldap的用戶配置。補丁地址:http://www.surf.org.uk,是英國人的作品。個人應(yīng)用,這比Qmail-ldap優(yōu)秀。
另一種使用LDAP的方法則是跳過Cyrus SASL,直接使用LDAP認(rèn)證取代PAM認(rèn)證,而使用courier IMAP提供POP3和IMAP服務(wù)(Couier IMAP能夠自已識別LDAP)。這種方法的缺點是找不到好的辦法處理SMTP AUTH。
g) TLS:
前述的兩份參考文檔分別介紹了如何配置postfix和Cyrus實現(xiàn)TLS。這方面,支持的相當(dāng)完全的。
Linux mail解決方案詳解; Courier方案詳解
Courier 一般以IMAP服務(wù)器出名,它是純開源項目,由臺灣的sourceforge.net提供代碼維護(hù),但實際上Courier是一個完全包括了MTA、 MDA在內(nèi)的郵件服務(wù)系列,比QMAIL和Postfix都全,實際上是最全的服務(wù)系列,甚至直接包括了IMAP,和郵件過濾器,這方面遠(yuǎn)勝于qmail 和postfix,理論上應(yīng)該是最合適的方案。但不知是開發(fā)者的問題還是什么的,courier方案是我見過的文檔最糟糕的項目,也許這根本上就是一個進(jìn) 行中的項目,可以從它的版號號,最新也只有0.40看出來。也正因為此,全套courier方案,是我三個方案中處理最艱難的一個。但對于復(fù)雜的應(yīng)用,如 果過了使用關(guān),倒是最方便的一個。
Courier方案詳解;(courier-mta+ couier IMAP+ mysql+mailadm);
a) 簡述;
Courier 一般以IMAP服務(wù)器出名,它是純開源項目,由臺灣的sourceforge.net提供代碼維護(hù),但實際上Courier是一個完全包括了MTA、 MDA在內(nèi)的郵件服務(wù)系列,比QMAIL和Postfix都全,實際上是最全的服務(wù)系列,甚至直接包括了IMAP,和郵件過濾器,這方面遠(yuǎn)勝于qmail 和postfix,理論上應(yīng)該是最合適的方案。但不知是開發(fā)者的問題還是什么的,courier方案是我見過的文檔最糟糕的項目,也許這根本上就是一個進(jìn) 行中的項目,可以從它的版號號,最新也只有0.40看出來。也正因為此,全套courier方案,是我三個方案中處理最艱難的一個。但對于復(fù)雜的應(yīng)用,如 果過了使用關(guān),倒是最方便的一個。
Courier不但介紹的書極少,而且文檔虎頭蛇尾,牛頭不對馬嘴,不看文檔不知如何用,看了文檔,更是不知所 云,常常是一大堆廢話開場白后,用者正要看它正文的說明,它卻說:全說完了!我開始時以為postfix的文檔已經(jīng)夠糟糕的,但后來才發(fā)現(xiàn),與 postfix相比,是小巫見大巫。
推薦使用Courier IMAP服務(wù)器的文章很多,但介紹如何集成Courier IMAP和系統(tǒng)外認(rèn)證的中文文章不但少,從表現(xiàn)出來的次序來看,作者極可能根本上沒有成功運行過(按他們說的方式是不可能成功的)。另外,考慮到我們要求 的第三點,單獨使用Courier IMAP的理由并不充足。
另外,courier IMAP的管理工具不多,遠(yuǎn)不及cyrus IMAP的方便、直接。
Courier是一個比Postfix更新、更大、更全面的郵件項目,也更不成熟,但與Cyrus SASL沒有沖突。
優(yōu)點:
高度集成,技術(shù)先進(jìn),功能全面;
缺點:
開發(fā)不成熟,許多模塊根本未完成開發(fā);
文檔極缺乏,連管理使用文檔也沒有。
適用:可適用于所有類型要求。
b) 需要軟件:
Courier-MTA最新發(fā)布版;
Mailadm最新版(http://courier-mailadm.jgaa.com)
c) 系統(tǒng)框架:
Courier MTA發(fā)布包已經(jīng)包含幾乎全部軟件,包括MTA,MDA,POP3和IMAP服務(wù)器,認(rèn)證功能,郵件過濾,TLS連接等。并由第三方軟件包mailadm提供管理腳本。
Courier MTA盡管包含各個軟件,但各個軟件之間各之為政,單獨配置,主要包括:esmtpd,pop3d,imap3d,courier courierfilter五個。啟動的時侯把各自的服務(wù)start, 如/usr/lib/courier/sbin/esmtpd start,停止的時侯stop就可以了。
d) 認(rèn)證:
Courier各服務(wù)雖是獨立,但認(rèn)證流程是統(tǒng)一的,關(guān)鍵在于 authdaemond進(jìn)程,由該進(jìn)程再去調(diào)度各種形式的認(rèn)證流程,如authdaemond.mysql.. 在配置系統(tǒng)提供上述五種服務(wù)時,在各自的配置文件中配置使用authdaemond進(jìn)行認(rèn)證就可以完成統(tǒng)一認(rèn)證。
流程是:
(1) 配置authdaemond.mysql,配置文件authmysqlrc, 包括數(shù)據(jù)庫位置,密碼,表名,域名等;
(2) 配置authdaemonrc使用authmysql; (authmodulelist項);
(3) 最后配置各個服務(wù)使用authdaemond, 如配置esmtpd提供esmtp的服務(wù)(auth smtp認(rèn)證服務(wù))
e) 系統(tǒng)管理:
這是一個大弱點,Courier好象開發(fā)出來就不準(zhǔn)備給別人用似的,既沒有工具也沒有文檔,有一個pl的couriermailadm,登錄成功后就一點反應(yīng)也沒有,連操作菜單也找不到。
沒有命令行工具,要么自已寫程序管理,要么使用一個第三方的管理工具mailadm可以完成authmysql的courier的基本管理,包括虛擬主機和用戶管理。但客戶自行修改密碼的故事還不行。
f) 郵箱:只能采用Maildir,在提供IMAP時相當(dāng)不方便。
g) 注意事項:
安裝時除了最后的make install使用root外,從tar -xzxvf開始都要使用非root帳號,否則安裝雖能完成,但是卻動不了,而且再安裝也沒有用,除非能夠把程序全找出來刪光,否則只有重裝系統(tǒng)才能下一次了。這點非常重要。
Courier -MTA使用完全的ESMTP協(xié)議,而不是象qmail-postfix那樣在SMTP上打補丁。同時受口令認(rèn)證和IP段的約束。必須編輯 esmtpaceess,esmtpacceptmaifor, locals這些文件,再生成相應(yīng)的dat文件,才能真正工作。象如果在互聯(lián)網(wǎng)上使用,可以esmtpaccess開放relay,
#echo 0.0.0.0 << esmtpaccess
#makeesmtpaccess
由于已經(jīng)設(shè)置了esmtpd使用口令認(rèn)證,也就成了通常的SMTPD AUTH的可供漫游的服務(wù)器了。
h) IMAP服務(wù)器;
Courier以IMAP出名,它不但可以配套Courier-MTA,而且可以配套qmail或postfix,或其他的MTA。統(tǒng)一認(rèn)證的關(guān)鍵點有三個:mysql,vchkpw,authmysql.
i) LDAP和虛擬主機:courier-mta及imap直接支持虛擬主機和LDAP,配置相當(dāng)簡單。
j) 可參考文章極少,http://www.tonybibbs.com/courier-howto.html可算是不多是可用參考之一。由此也可見,由于文檔工作的不足,Courier是如何地變得不為人知及不為人用了。
郵件服務(wù)器的方案不少,在WINDOWS上,即使不算Exchange,可用的小郵件服務(wù)器都有十來種吧?特點千篇一律,對于在WINDOWS上的程序來說,核心功能一般不用自已做,所有程序?qū)嶋H上就是一個自已設(shè)計的操作界面調(diào)用微軟的COM構(gòu)件,僅此而已。
五、其他可選方案;
a) 其他Linux商業(yè)方案
1) 北京斯利爾公司的@message
@message 是廣告相當(dāng)火的,但@message并不是一個完整的mail方案,本質(zhì)上是一個包含了pop3及pop3管理工具,主要基于sendmail的,帶一個 相對精美的webmail的工具套件,不支持大量的用戶(大量的用戶必須另外定制)。不必考證它的pop3d其實是基于那一個開源軟件的,這不是它的賣 點,僅從基本mail性能上,它除了webmail外,連sendmail也比不上。@message主要賣點跑到了web,特別是WAP的web上,也 就是用手機收郵件,以及自動拆解語音MIME,目的也是用到手機或是電腦自已播語音上。一般認(rèn)為,這是非常邊緣的功能,這也從側(cè)面說明,為什么 @message商業(yè)上并不成功。由于@message不是完整的mail方案,而是一個mail邊緣應(yīng)用方案,因此它無法解決包括smtp auth, tls,帳號管理等問題。@message聲稱有1500萬用戶,讓人懷疑是不是吹牛得也太離譜了。
2) 廣州博大的foxmail server for linux
這 是一個基于qmail的解決方案,使用perl及resin的JSP提供應(yīng)用管理界面(同時使用兩個WEB程序,是不是說明WEB開發(fā)力量太弱了?),可 以選擇mysql和ldap作為帳號載體。提供基本的明文認(rèn)證,屬于功能中低偏弱類型,如前所述,兼有qmail方案的全部弱點。報價55,000元,實 收估計20,000元,但相信沒有多少成功的案例。但不管如何,相對于@message,foxmail server更接近于實質(zhì)性的mail解決方案,而不是邊緣方案。
b) 跨平臺JAMES方案;
JAMES是 Apache-Jarkara項目中的解決方案。JAMES是純JAVA的應(yīng)用,不受操作系統(tǒng)的限制,完全集成了MTA和MDA,并且自帶郵件分類查詢的 功能。本來是集成JAVA服務(wù)器應(yīng)用相當(dāng)理想的方案,缺點是未完全開發(fā)完畢,令人遺憾。James沒有經(jīng)過嚴(yán)格和大范圍的試用,盡管已經(jīng)到了2.1版本, 但我認(rèn)為它其實是一個未完成開發(fā)的產(chǎn)品,相當(dāng)不穩(wěn)定。它的缺點是:
1) 文檔少而試用欠缺;而且沒有完全實驗相應(yīng)的RFC要求,因此,有時只能在JAMES之間收發(fā)信,簡直就是要命。
2) 缺少有效的SMTP AUTH的方法;
3) 性能欠佳,沒有實現(xiàn)JAVA留駐后臺服務(wù),對于大量的信收發(fā)問題會相當(dāng)嚴(yán)重;
4) 缺乏有效的后臺管理工具。
綜合而言,就是令人期待,卻未可用。
c) Lotus Domino方案;
Lotus Domino本質(zhì)上不是純粹的郵件服務(wù)器,而實質(zhì)上是一個二進(jìn)制文件(非結(jié)構(gòu)性文件)存儲/交換服務(wù)器,郵件功能本質(zhì)是為了完成文件的交換。Lotus Dimino的核心是提供一致的非結(jié)構(gòu)性文件的存儲和查詢方案,這一方案跡近完美,且是與平臺無關(guān)的(與格式相關(guān),即NSF);因此,任何立足于非結(jié)構(gòu)性 文件的存儲和查詢作為主要業(yè)務(wù)目的的項目,在財務(wù)可以承受的前提下,使用Lotus Domino都可以被認(rèn)為是合適的。
但作為純粹的郵件服務(wù) 器,Lotus Domino不但太貴,而且功能單一而負(fù)載低下。Lotus Domino使用自帶郵件帳號(通訊錄),也可合并WINDOWS 2000帳號;支持最新的郵件協(xié)議。但除非使用專門提供的Lotus客戶端工具,否則與普通免費郵件服務(wù)器無異。
如果是進(jìn)行非結(jié)構(gòu)性文件類的存儲 和查詢,也就是OA型形式的應(yīng)用,Lotus Domino除了太貴而且還須二次開發(fā)外,沒有什么明顯的缺點,國產(chǎn)的各型OA除非本身也是基于MAIL的,否則與Lotus Domino不在同一個應(yīng)用檔次。另一方面,存儲文件和查詢的方式并不止NSF一種,簡單的加密目錄存儲外加數(shù)據(jù)庫索引查詢可以獲得不亞于NSF的存儲和 查詢功能,也是實情。
因此,如果目的是使用Mail的話,不應(yīng)選擇Lotus Domino;作為簡單的OA,可以使用國產(chǎn)OA,讓Lotus Domino用到最合適的地方。
Lotus Domino mail服務(wù)器報價大約是幾萬,而Notes客戶端接近每個終端1000元,按一半折扣計,25用戶就需約二萬以上。正常情況下,含應(yīng)用服務(wù)器則加倍再加 倍(企業(yè)版),并且隨著用戶數(shù)增加而直線上升。不限用戶的Lotus Domino mail方案,連硬件及操作系統(tǒng),成交至少在30萬元以上;若是全套功能,價格當(dāng)2-3倍,二次開發(fā)費用另計,需加一半到翻番。
由于Lotus Domino 不是純粹的郵件服務(wù)器,所以一般也與Exchange server一樣稱為群件服務(wù)器。
d) Windows 平臺方案
1) 普通郵件服務(wù)器方案
由于windows本身建制了SMTP,以及提供了POP3及IMAP4的MS API,因此在windows上開發(fā)郵件服務(wù)器是相對容易的,這類小軟件很多,粗略算起來有二十多種。這類軟件雖多,但卻都是雞肋,要說在小辦公室里發(fā) 信,用不著它,直接用WINDOWS上的SMTP就可以了;如果要收信,需要DNS已經(jīng)是不好弄,如果擺到網(wǎng)上,不但費用不菲,而且大卡車裝一塊小土豆, 也實在不象話。說到底,這批小軟件真的是只能用來玩玩的小軟件,注定沒前途。代表是Imail及Foxmail server for NT.
Imail: 最早的共享文件夾的windows Mail。相當(dāng)方便,粗看起來,按我們的要求,不計系統(tǒng)安全性,僅缺乏支持TLS,外置數(shù)據(jù)庫功能不完善;包括IMAP和WEBSERVER,以及虛擬主 機功能都提供了。使用也相當(dāng)方便,但基于上述的理由——這又有什么用呢?IMAIL的價格不菲,大致是Exchange的一半左右。連同其平臺 windows 2000外加相應(yīng)的連接,發(fā)布成本并不低,當(dāng)在十萬元以上,性能遠(yuǎn)遠(yuǎn)比不上那怕是qmail的普通方案。Imail還有另外一個問題,原因不明,就是使用 郵件代理而對方是UNIX服務(wù)器且要求有ESMTP時,它會不能識別地發(fā)出AUTH請求,這對于許多IMAIL來說后果就是一旦采用如防病毒代理服務(wù)器, 就無法和大多數(shù)郵件服務(wù)器通信了。原因也許是由于IMAIL沒有嚴(yán)格執(zhí)行ESMTP的RFC協(xié)議要求。
明Foxmail server:配置項遠(yuǎn)少于imail,幾乎沒有配置,但卻提供了SMTPAUTH,使用的也不是系統(tǒng)帳號,從這個意義上,它比IMAIL要好玩,如果打算讓W(xué)INDOWS湊合著收發(fā)郵件,這是一個好的辦法。Foxmail只支持pop3.
1) MS Exchange server
與Domino 一樣,這是windows另一款非公享文件服務(wù)器型的,它其實是MS Mail的增強版本。Exchange常常與Domino爭奪國內(nèi)OA的市埸,但其實,Exchange本身并不帶文件存儲、處理等功能,它真的就是一個 交換工具,較之Domino多了netmeeting,Message server這類的聊天工具服務(wù),對于深好此道的公司是一個不可多得的選擇(偏偏本人把UDP聊天與海洛因等而同之,不感冒)。所以區(qū)別Exchange 與Domino的使用其實很簡單:如果不是處理文件OA類,Exchange更合適。
Exchange支持相當(dāng)完整的最新郵件協(xié)議,而且與 outlook客戶端密切集成,郵件、語音、聊天、傳真渾然一體,這種使用如同吸食海洛因一樣,讓人無法擺脫;特別是那種網(wǎng)上聊天(名為網(wǎng)上會議),除非 老板醒目知道它的危害,否則其下屬在選擇替代軟件時,一定會把支持聊天視作最必要的功能作為替作產(chǎn)品的最優(yōu)先條件。正因為如此,任何mail方案可以與 Exchange競爭,但如果讓替代現(xiàn)存的Exchange系統(tǒng)是妄想——考慮作為補充增加mail功能更為實際。正因為Exchange server有如上補充功能,因此,也稱為群件。
但反過來說,若除了語音、聊天、傳真之類邊緣功能剔除,Exchange就真沒有什么特別的,看上去不比imail強到那里去。成本與domain 差不多而稍便宜。
Exchange 最方便之處是它完全集成了windows2000系統(tǒng),或MS Active Dircctory動態(tài)目錄的帳號。從這點也可以看出,Exchange server開發(fā)之初是打算仿制sendmail之于UNIX的角色提供主機-工作組級郵件服務(wù)的,其后轉(zhuǎn)為從各個方面加強這一功能,這與Domino的 方向和側(cè)重點完全不同。但其問題最大之處,除了價格、高負(fù)載性能以外,恐怕就是它的帳號完全與系統(tǒng)(域)帳號集成了。換言之,Exchange郵件用戶自 然擁有window2000域服務(wù)器群的系統(tǒng)帳號,從而具備了產(chǎn)生無窮漏洞的空間。
但不管如何說,Exchange server仍然體現(xiàn)了微軟產(chǎn)品的一貫特點:基本功能簡單、全面、輕負(fù)載性能、系統(tǒng)漏同推向系統(tǒng)承擔(dān)、使用簡潔。安裝Exchange server不算太容易,但除了要花錢申請預(yù)算一項特別外,其余較之linux同樣方案,畢竟不是一個低級的。
與Domino server相比,Exchange server更接近于是Linux mail方案的競爭對手;而Domino server接近于是OA的競爭對手。與Linux Mail相比,Exchange server在低成本、高負(fù)載性能、安全性上明顯劣勢;而在易用性、相關(guān)產(chǎn)品線、基本性能上明顯占優(yōu)。這也是為什么linux mail為什么動不動就說自已安全,多么差勁的機器每天能發(fā)多少千萬郵件的原因;而Exchange server總是有意無意強調(diào)自已的outlook也是同樣道理。
【返回】