OSWikiHK: 請協力 GPLv3 的中文翻譯工作。

Mail Receive Agent

OSWikiHK,自由中文開源知識庫

Jump to: navigation, search

目录

MRA ( Mail Receive Agent )簡介

通常我們所指的 Linux 下的電郵方案,很多時候我們都是在指外送伺服器。 也即是說我們當問問別人你在採用何種電子郵件方案時,我們其實想別人回答自己的答案是:

  • Sendmail
  • Postfix
  • qmail
  • exim

外送伺服器和接收伺服器

當然你知道了別人使用了何種外送伺服器的時候,其實你也會間接地了解到別人是使用什麼 接收伺服器。

例如︰當你使用 Sendmail 的時候,使用多時候你也會使用 imapd 和 ipopd 的, 而你如果是使用 qmail 的話,你很有可能是使用 courier-imap 或者是 qmail-pop3d 。

至於如果你使用的是 Postfix 或者是 exim 的話,你就有更大的彈性使用不同的接收伺服器軟件。

什麼叫作外送伺服器

或許說了這樣久,你可能會問什麼是接收伺服器?而甚麼是外傳伺服器?其實這些名稱是來自 outlook expire 的,這也是你在設定你的電郵軟件時需要鍵入的資料。通常來說︰外傳伺服器是指你的 smtp 伺服器,而接收伺服器是指你的 imap 或者 pop3 伺服器。

把接收伺服器和外送伺服器分開不同電腦的方案

bigemailsystem.png

當然很大情度,外送伺服器和接收伺服器是指同一台電腦,但是如果你的使用者過千的話,而你又選擇除外送伺服器外多建立一台接收伺服器的話,你的接收伺服器內亦會有 smtp 伺服器的部份,只是它不負責把信件傳送到 internet 上去。(這是一個十分有效的分工方案,而且不用太多的設定就可以有效地提升你電郵系統的效能。)

簡介 mail storage 的觀念

另一方面當我們討論電郵伺服器時,這是我們很重要而且要特別關心的部份。不然老閭到那裡收取自己的電郵?!(當然實際上他不會過份關心這方面的問題,他只是關心不要任何電郵是遺失吧了。)

要討論接收伺服器的時候,有一個很重要要關心的地方;就是你的 smtp 如何收起自己所收到的信件。這就是稱為 mail storage 的觀念!

mailbox 與 Maildir/ 的分別

現今在電郵世界中有兩種完全不同的 mail storage 方案,一種稱為 mailbox 的方式; 而另一種方式我們稱為 maildir 的。這兩種方式的不同,你可以以檔案和目錄的不同來作分別。

何謂 mailbox 的電郵 storage

mailbox 是一種十分傳統的 mail storage 方式,常見於 Sendmail 系統。

使用這種方式存放電子郵件的話,你會發現使用者的郵件是一封一封地存放在同一個檔案下的。(四年前我已常見有些檔案的大小有時候 mailbox 檔案有 500 到 600 M 大小。我想現在有些時候這些檔案可能己經過 1G 也不是一件奇怪的事情。)

何謂 Maildir/ 的電郵 storage 方式

而 maildir 是一種以檔案目錄形式來存放電郵信件的方式。早期是見於 qmail 伺服器下的。

使用 Maildir/ 的原因,及 Maildir/ 與 mailbox 的不同。

這種收藏信件的方式相對 mailbox 來說,甚至可以算是一種革命。主要提出這方式是因為快的原故!

mailbox 所帶來的問題

因為在電腦系統下不同的程式是絕對不可能同時寫入同一個檔案的。因此當一封電郵程式發放電郵到同一帳號下時,如果它是使用 mailbox 模式的話,當一個發放工作必須要完成後,另一發放過程才能開始。

Maildir/ 如何解決 mailbox 所帶來的問題

如果使用的是 maildir 模式的話,就不需要等剛進行的發送過程完結;新的發送過程也可以開始。因此速度就會大增。這就是 maildir 發展的原因。而這方面更被 courier 發陽光大,發展出 Maildir plus 的方式。(詳細的 Maildir plus 的觀念不在這裡介紹了!)

另外使用 Maildir/ 也有一個好處,就是你使用 courier-imap 的話,你可以在你的電郵客戶程式下建立不同的電郵目錄,而 courier-imap 就真會在你所屬的 Maildir 下建立相關的檔案目錄,這可以方便你對電郵的整理。

一般使用 Maildir/ 的情況

己 Maildir 方式來存放檔案,是很多的電郵伺系統使用的;例如︰我公司及協會內所使用的電郵 Mail Storage 模式就是使用 Maildir 了。(有很多時候, Maildir 會寫作 Maildir/ 以分別這是使用 Directory 模式來存放檔案。)

mail storage 與 smtpd 配合的問題

其實當你選擇要使用那一種接收伺服器的時候,當然你要看看你的 smtp 伺服器能否支援這種 mail storage 模式。如果不支援的話!那你的 smtpd 就不能把信收好,然後讓接收伺服器提取了。

單一電郵伺服器使用者分配問題

其實除了要考慮以上的事情外,你還需要留意一件事;就是如何分配使用者帳號?! 最遠古的分配方式是當伺服器要管理使用者帳號的時候,會把這帳號加到系統內成為伺服內的使用者一員。

其實這也是很多公司仍然使用的方式,這種方式有它的好處!因為這是在伺服器加上一使用者帳號因此使用者就可以享用伺服內不同的服務,例如︰電郵郵件,檔案傳取甚至 samba 的服務。這可以做到簡單的統一管理。

(當然這是在一台伺服器環境下說,如果是多伺服器你就需要考慮使用 LDAP 伺服器來集中管理了。)

純電郵帳號的使用者權力問題

其實電子郵件有一個很特別的特點,就是使用者在電郵系統,他的最主要權限是在電郵伺服器下收取電郵和傳送電郵。這方面工作可以算是十分單純的工作,如果你的伺服器只是電郵系統,而你的使用者卻擁有系統使用者權限的話,可以說是分配過多權力給你的電郵使用者。

電郵系統對使用者的使用限制

另外如果使用者的權限主要在於電郵上,因此電郵使用者是不會離開他的 Maildir 或 mailbox 的。因此如果是一些大型的電郵系統,那麼整個大型的電郵系統很有可能是在同一使用者管理的。(或許可以說他的運作是在同一 uid 和 gid 下進行,包括不同使用者的寄信動作和收信動作。)我通常會稱這使用表為虛擬使用者!( 這也可以算是最簡單的使用者管理方案。 )

vpopmail 的簡介及與 qmail 的關係

因此在你選用接收伺服器的時候,你也會需要考慮這管理的問題。而一個最出名的大型系統管理方案是 vpopmail 。(絕對不是說除了 vpopmail 就沒有虛擬使用者電郵方案。而是以這為發展目的方案就是 vpopmail ,而又以 end 管理者為使用者角度出發,而又最好的方案之一可以算是它了。當然這還包括 vqadmin 和 qmailadmin 這兩套管理者軟件了。)

這方案是運行在 qmail 上,而且很大程度你是不能或不容易把它移植到其它 smtp 平台上。 它所使用的是 courier-imap 。

|| courier-imap.png || 如希望對 Courier 有更深入了解,可以參考 http://www.courier-mta.org/imap/ ||

感謝 SWPEARL 作資源支援。

Personal tools