複製鏈接
請複製以下鏈接發送給好友

Email系統

鎖定
Email系統基於Web在最近幾年非常流行,當前,幾個著名的免費Email網站基本上已經成為大多數人的選擇,建立單純提供免費Email服務的站點不再像以前那樣受到熱烈歡迎,但是提供Web界面的Email服務已經成為了一個商業站點為其註冊成員提供的基本服務之一。 一個Email系統可以分為服務器端和客户端,Web界面的Email系統則是將Email客户放在了Web服務器端,因此Email系統所需要實現的是一個Web界面的Email客户。然而,由於這個Email系統要求用户數量較大,因此對於Email服務器也有特定的要求。
中文名
Email系統
領    域
計算機
Email軟件
sendmail
操作系統
用Unix作為服務器的操作系統

Email系統用户數據庫

Email系統 Email系統
用户數據庫
由於提供Web和Email服務要求穩定性和性能特別高,因此一般都使用Unix作為服務器的操作系統,例如hotmail使用FreeBSD 和Solaris,國內163等站點也是BSD系列。然而, Unix的標準Email系統也不合適用做這種大容量服務。有的Unix系統,例如當前版本的Linux,其用户標識只有16位,因此用户數量最多隻能有64K,即使Unix系統本身支持32位的用户標識,考慮到性能因素,單台服務器支持的用户數量也不要超過10萬。
為了具有支持更多用户的可擴展性,一般採用多台服務器同時提供服務,雖然此時仍然可以使用標準Unix用户作為Email用户,但考慮到安全性、性能以及可管理性,一般採用非Unix系統用户來作為Email用户。而保存用户數據通常採用支持網絡訪問的數據庫形式,一般常用的有LDAP、標準數據庫、以及Email系統自己實現的用户數據庫。其中,LDAP由於是提供目錄服務的標準,因此應該為最佳的選擇,其常用的開放源代碼實現為OpenLDAP;而標準數據庫由於實現方便、可擴展性強,其中在Internet上最常用的為MySQL;此外,也有使用其他方式的實現。

Email系統郵件保存

Email系統 Email系統
Email系統
由於用户數量較大,如何保存用户的郵件就是一個非常重要的問題。傳統Unix使用一個單一目錄來保存所有用户的郵件,在用户數量較多時就極大的降低了文件系統的性能。只有使用多級目錄,每個目錄下的文件數量有限,才能降低打開文件時的系統消耗,或者不再使用簡單的文件來保存郵件,而採用某一種封裝形式。完全採取數據庫形式來保存郵件,由於用户郵件操作多為文件操作,且大小變化較大,因此會造成性能和存儲空間上較大的浪費。
由於用户數量巨大,並且也要求能被多台服務器同時訪問,必須採用存儲空間較大的服務器或服務器集羣來保存,通過光纖通道或者網絡文件系統NFS來共享存儲空間,使得每個用户的郵件存儲路徑對於每個服務器都是一致的。光纖通道是一種非常昂貴的解決方法,更為常用的是使用NFS,可以使用專用的NFS服務器,如NetApp,或者使用帶有RAID能力的PC Unix服務器
當使用NFS共享存儲空間的時候,一個非常重要的問題必須注意。由於NFS缺乏文件鎖定機制,因此使用傳統的用户郵件存儲格式mailbox時,因為所有的郵件都保存在同一個文件中,因此進行郵件操作就必須加鎖,以保證沒有訪問衝突,這就使得它不適合NFS存儲方式。為了解決這個問題,qmail提出了Maildir存儲方式,每個郵件作為單獨的一個文件保存在用户個人的郵件目錄下,就避免了加鎖。因此,常見的免費郵件服務器,一般都採用Maildir方式來保存用户的郵件。
如果不打算使用共享文件系統的方式來保存用户的郵件,而打算讓每個服務器只訪問其自己硬盤存儲空間上的用户郵件,那麼Email服務器和客户端都需要進行定製,使它們能通過用户名來找到用户屬於的真正服務器,將訪問任務交給這個服務器完成。這種方法的缺點除了所需要的改動較大之外,系統結構複雜之外,還由於服務器是按用户進行分割的,不利於分擔負載。其優點也是由於它不通過網絡訪問其他服務器,因此可以採用任意的郵件存儲格式,包括採用強大的cyrus系統來保存郵件和提供服務。

Email系統郵件服務器軟件

Email系統 Email系統
郵件服務器
標準的Email軟件,例如sendmail,雖然也提供了一些包括aliases等方法,來支持非Unix系統用户,但是這些能力對於實現這種Email系統是不夠的。為了支持這些Email用户,必須使用自己的Email服務器軟件。一般由於現有的Email軟件都相當成熟,而且也都是開放源代碼的軟件,因此一般都是改動原有的Email軟件,如sendmail、qmail等,使其支持特定的Email用户。完全重寫一個Email服務軟件,從成熟性、穩定性來看並不可取。
不管從性能上,安全性上考慮,sendmail並不是理想的選擇,而且由於qmail本身就支持Maildir,因此就成為了常用的Email 軟件的基礎開發平台。然而需要注意的是,qmail使用GPL許可進行保護,因此基於qmail進行的任何改動,原則上必須公開源代碼,這對開發商業系統有一定障礙。當然可以通過不改動qmail,而改動相關的系統庫函數,或者採用外掛的方式來繞過這個問題。另一個可選的基礎Email軟件是postfix,其本身就具備與LDAP、MySQL的接口,幾乎不需要改動就能作為郵件系統的一部分。

Email系統Web客户端

Web界面Email系統的另一個重要的部分就是Web客户端,這一部分的功能將如同個人計算機中的OutLook,負責給用户提供訪問自己郵件的能力。由於Web訪問本身是無連接的,因此必須保證用户的安全性。基本上,安全性可以通過登錄後建立的會話標識、臨時目錄,並在程序中進行驗證來保證。
Web客户端必須以統一的方式來訪問服務器,可以通過直接文件訪問的方式來獲得用户的郵件,或者通過POP3、IMAP等標準協議來訪問。對於使用網絡文件系統來共享用户郵件的系統,通過直接文件訪問的方法最為直接和便利,也不需要額外的消耗。而通過POP3、IMAP協議來訪問服務器,其直接的好處就是Web客户端和Email服務器相分離,提高了系統安全性。
當前,已經有一些相當成熟的開放源代碼的Web客户端軟件,其中IMP是採用PHP來實現的,通過IMAP協議訪問服務器的Web郵件客户端軟件。而WING則是採用Perl來實現的另一個Web客户端軟件。這些開放源代碼軟件都相當不錯,然而,將這些軟件與自己的系統相集成,還會需要進行一定改動。此外,還應該遵循其許可要求,將改動的代碼對外公開。

Email系統實現負載均衡

由於需要提供給大量的用户進行訪問,因此單台服務器不能滿足這個需要,而必須要使用多服務器的方式。除了按照功能性進行分割之外,如Web服務器、Email服務器以及文件服務器相分離,還需要對一些資源緊張的服務使用多服務器進行負載均衡。雖然當前一些商業廠家也提出了一些服務器集羣的方案,但常用的簡單而有效的方法還是DNS循環解析,Web服務器重定位和NAT負載均衡等幾種。
DNS循環解析是為同一個名字分配多個IP地址,它用在Yahoo等相當大的站點上,實際效果也相當不錯。而Web服務器重定位則是由Web服務器隨機產生位於不同服務器上的真實頁面URL,使不同的瀏覽器載入不同服務器上的頁面,使用它只能實現Web客户端的負載均衡。而NAT負載均衡則利用第四層交換機,使同樣的請求轉向不同的服務器,除了昂貴的交換機之外,也有一些軟件能完成NAT功能,我曾對FreeBSD的natd進行了改動,使其能支持負載均衡,對於因為交換機價格問題而不得不降低性能要求的使用者來講,也是一種選擇。

Email系統實例分析

當前在國內最流行的Web界面Email系統為網易公司的系統,它是採用qmail作為基本服務器軟件,再加以改動的系統。它採用 NFS網絡文件系統作為用户郵件存儲空間,使用Maildir作為郵件存儲格式,提供多級目錄以支持大量用户。其Web客户端為他們自己實現的,通過直接訪問用户郵件的方式為用户提供服務。不考慮其軟件的小問題,這種實現方式是非常流行且成熟的方式,大部分免費郵件服務系統都是採用的這種模式。
另一種方式是儘量利用已有的開放源代碼軟件,一種可行的方案是使用Postfix、OpenLDAP、cyrus和IMP來實現大容量Email 系統,其中,主郵件服務器使用Postfix查詢LDAP服務器,決定用户的真實郵箱地址,然後轉發到真實郵件主機上,該主機通過LDAP查詢確認,將郵件放入cyrus服務器中,而IMP通過登錄cyrus,使用IMAP訪問用户郵件。當用户增多,一台cyrus服務器不夠時,可以將新添加的用户放置到新增加的服務器上,只需要在LDAP服務器設置相應的屬性就可以了。在這種方式下,由於用户是嚴格按服務器分割造成了管理等困難之外,這種結構本身較為複雜。然而,如果用户數量不是很多,那麼就不需要使用多台cyrus服務器和LDAP服務器,複雜程度就大大降低,比較適合中小型站點使用。

Email系統建議

企業郵箱這個項目雖然比較小,但是,從這個小項目中,卻可以反映出IT 負責人是否具備CIO 應具有的能力。如是否有能力作好需求調研、風險管理、項目規劃等等。為此,對這些未來的CIO,提了六個建議。

Email系統部署好客户端

郵箱項目跟其他的ERP 項目不同。郵箱服務器跟客户端往往是獨立的。郵箱服務器可以採用微軟的Exchange產品,但是,客户端不一定要採用微軟的產品,可以採用免費的Foxmail等客户端。而像ERP 這種軟件,往往沒有選擇的餘地。CIO選擇好服務器之後,也就選定了採用什麼樣的客户端。
在企業中該採用什麼樣的郵箱客户端呢?最好客户端能夠統一。也就是公司內部所有員工都採用統一的客户端。不過,往往這方面很難達成統一的認識。這主要是因為郵箱已經日益成為互連網應用中一個必備的軟件。企業用户在以前都有自己喜歡的客户端軟件。所以在項目推廣的過程中,就有用户提出要用自己所熟悉的客户端。
此時,作為CIO來説,雖然可以通過強制措施統一客户端,但這顯然會增加來自員工的阻力。這個阻力往往是不必要的。而且,員工通過比較,會對現有的客户端軟件挑三揀四,反而起到相反的效果。所以,若客户端無法統一的話,CIO 就需要考慮客户端與郵箱服務器的兼容問題。有些客户端雖然可以從服務器那邊接收郵件,但是,可能會出現一些小問題。如需要進行人為的字體轉換或者附件不能夠正常顯示等問題。
所以,CIO 在部署Email系統的時候,要考慮採用什麼類型的客户端軟件。

Email系統郵箱備份策略

任何應用服務器,出於安全的考慮,都必須要對應用服務器中的內容進行備份。郵箱服務器也不例外。作為郵箱系統管理員,要根據企業的實際情況確定一個合理的備份策略。
通常情況下,企業郵件來往都比較頻繁,所以從性能的角度考慮,最好採用差異備份與完全備份結合的策略。如在星期六,進行一次完全備份;在其他時間進行一次差異備份。當郵箱容積比較大時,這可以減少郵箱服務器備份的時間與空間;同時,也可以把因郵箱備份給數據庫造成的不良影響將到最低。
除了合理的備份策略之外,數據庫管理員還需要考慮是否要進行異地備份。筆者是建議在條件允許的情況下,對郵箱服務器進行異地備份。如此的話,在郵箱服務器出現硬件故障的時候,如硬盤損壞時,可以把數據損失降低到最少。同時,也可以及時的恢復郵箱服務器的運行。

Email系統帳户命名規則

當在企業中部署郵箱系統的時候,CIO首先應該確定一個帳户的命名方案。郵箱帳户的命名應該統一。因為員工除了在內部發送郵件之外,還需要把郵件發給外部的合作伙伴,如供應商與客户等等。所以一個友好的帳户名字,也能夠體現一個公司的管理水平。若讓用户自己無規則的取郵箱帳户名,很顯然看起來會非常的混亂。
所以,建議統一郵箱的命名策略。筆者企業每個員工都有一個英文名字。所以採取的命名規則就是“英文名字.姓”這個方式來對用户的郵箱帳户進行命名。採取這個方式,要注意一點,就是要跟人事部門配合,當他們輸入人事資料的時候,最好能夠保證員工的英文名字沒有相同的。若英文名字相同,則其中一個人必須更改。否則的話,稱呼上容易搞錯;郵箱地址中也容易出現問題。
有些企業也有通過名字的簡寫來對郵箱帳户命名。這也是可以的。重要的是對郵箱帳户的命名策略進行統一。不要有很多的版本。
除了對郵箱的命名進行統一外,認為,在部署Email系統的時候,需要制定一套書寫的規範。這主要是因為企業員工在書寫郵件的時候,往往會有一些不好的習慣。這會給企業的形象帶來負面的影響。如有些用户在書寫郵件的時候,不喜歡寫郵件的標題;又或者,不喜歡書寫稱呼等等。這些元素雖然不會對郵件造成致命的影響,但是,給其他人看到這麼不規範的郵件,就可以聯繫到員工的素質可能不怎麼高。
為此,在採用郵箱系統之前,要對員工進行全面的培訓。然後在服務器上,進行相關的技術限制。如沒有標題的郵件或者沒有稱呼的郵件不能夠發送。要能夠提示錯誤信息。

Email系統郵箱簽名制度

郵箱不僅是員工之間溝通的一個工具,更加是企業宣傳自身的一個手段。在郵件的尾部添加一個簽名,是企業藉以宣傳自己的一個有效途徑。
在部署Emaile系統的時候,會跟人事部門一起,定義好郵件簽名的格式。如有公司主營產品的簡要介紹、公司的網址、聯繫方式等等。通過這種方式,可以打響企業的知名度。同時,企業跟客户或者供應商聯繫往往不是一個人。如對於客户來説,企業銷售人員、質量人員等等可能都要跟客户打交道,此時,若幾個聯繫人的簽名格式亂七八糟的話,肯定會給客户留下一個不好的印象。
企業在使用郵箱系統之前,要統一簽名的格式。一般系統管理員可以給出一個固定的格式。而用户只需要修改自己的名字與聯繫方式即可。

Email系統用户郵箱空間規劃

雖然説現在硬盤的價格越來越便宜,但是仍然需要對用户郵箱的空間做一個規劃,以防止因為磁盤爆滿而造成的服務器接收郵件故障。以前在郵箱維護中,經常會碰到有些員工把郵箱當作文件備份的工具。把一些重要的文件,自己發給自己,在郵箱服務器上進行備份。而不是通過企業的文件備份服務器進行備份。有些員工還會利用企業的郵箱跟同事之間發送一些歌曲之類的大文件。因為企業內部郵箱比外部郵箱的訪問速度要快得多,所以,上傳一些大容量的附件也就比較容易。
在這種情況下,有必要根據用户的帳户對其設置郵箱存儲空間。當空間達到一定程度時,如帳户總存儲空間的80%時,系統就要及時提醒用户,讓他們去清理油箱。把一些不必要的郵件刪除掉,以釋放郵箱空間。
另外還需要對附件的大小進行限制,特別是一些允許往外發送郵件的帳户。因為出於傳輸速度的考慮,互聯網上的郵箱系統,往往會對用户能夠接收的附件大小作了限制。當超過這個限制後,他們的郵箱服務器就不能夠接收這個附近。所以,若企業郵箱系統的附件容量過大的話,企業員工發給其他人他們就會無法查收附件。那時,可能反而會影響企業員工跟外部合作伙伴之間的正常聯繫。
所以,CIO 要根據實際情況,來確定附件的最大容量。當用户附件超過這個數量的時候,就會拒絕上傳附件。以免附件在傳輸過程中丟失。

Email系統信息安全

若企業部署了郵箱系統,那無疑就增加了一個員工泄露企業機密信息的渠道。此時,作為企業CIO來説,就要考慮,如何來防止這些不好事情的發生。
如CIO可以考慮對用户的郵箱進行追蹤。有些郵箱服務器支持郵件的自動轉發。此時,就可以利用這個功能,把用户的郵件自動轉發到一個特定的郵箱中。當企業的機密信息被泄露時,就可以查看這個備份的郵箱,看看用户是否有泄露信息的嫌疑。
同時,企業部署郵箱系統之後,企業網絡安全也會收到一定的威脅。特別是病毒郵件對企業網絡帶來的隱患,是非常巨大的。所以,企業在部署Emaile系統之前,最好能夠跟網絡安全人員一起,設計一套抵制病毒郵件的安全方案。同時,出於安全的考慮,最好能夠把郵箱服務器跟其他的應用服務器分開放置。如此,即使郵箱服務器受到攻擊,也不會影響到其他的應用服務器。
郵箱服務器這個項目雖小,但是五臟具全。CIO在部署這個項目時,要考慮的內容當然不止以上這六個方面。有備無患,對於任何一個信息化項目都適用。總之,CIO在部署這個項目之前,要充分作好需求調研工作。在作好這項基本工作的同時,兼顧上面六個建議,相信可以出色的把這個項目落實下去。