用Linux作郵件服務器
在Internet上,E-mail是用戶之間交往溝通的最佳方式。通過電子郵件,可以為Linux系統開拓新的空間,增強與外界的聯繫。已經證明,電子郵件是Internet上使用最多的應用程序,甚至比WWW的使用還要多。本章介紹如何為Linux系統安裝、配置E-mail軟件。1 Linux E-mail軟件簡介7W1g2R\al7J-XaM
-FD'h}0V0gu!L
Linux中的E-mail軟件系統分為兩大類:MUA(郵件用戶代理)和MTA(郵件傳送代理)。MUA的功能是為用戶提供讀寫郵件的界面,而MTA的作用則是處理郵件的收發工作。換言之,用戶可以通過MUA寫信、讀信,利用MTA收信、發信。 'r T FM9h%pl
6@FE&}(Sv!A,uq
最常用的電子郵件MTA系統是sendmail,它由加州大學開發,其最新版本是8.9;另一個常見的MTA程序是smail,它由Curt Noll和Ronald Karr聯合開發,也已經發佈了幾個版本。 {@ Lh%Q;A.b;`
值得注意的是,與其他大型軟件包一樣,sendmail也有自己的一些缺陷。雖然引起sendmail失敗或系統崩潰的錯誤已基本上被排除,但提供 root訪問權限的安全性漏洞仍然時有發現。如果配置不當,sendmail有可能為「黑客」提供可乘之機。為了安全起見,用戶最好定期訪問計算機緊急反應小組(CERT,www.cert.org)的網頁,加入它的郵遞列表,或者閱讀由它主持的網絡討論組(conp.security.announce)來瞭解由它發出的安全性通知。
(L KR4~xl{C
電子郵件的MUA系統目前很多,大約有十幾種,其中最常見是:mail和elm。
J K7w&Bzs
2 sendmail及其配置5F-fT_k_q
l D:nOuJ z'|"ca
本節介紹如何安裝和配置sendmail程序,不過在開始深入研究這些詳細內容之前,先介紹SMTP協議以及域名系統(DNS)對E-mail在Internet上傳輸的影響。
!e M.JP o
2.1 SMTPT3a])a5Z'D1|*n
9C3g aH9y)J'C*t3dP
SMTP是簡單郵件傳輸協議的簡稱,是Internet上傳輸郵件的既定標準方式。sendmail的基礎協議正是SMTP。sendmail程序提供為Linux支持SMTP連接所需的服務。 @@B J!b"ZZ#m:]
要瞭解sendmail所做的各種不同工作,需要掌握有關互聯網協議的一些知識。所謂協議就是硬件和軟件進行通信所遵守的標準。協議通常分為不同的層次,高層的協議利用低層的協議作為基礎。例如,互聯網協議(IP)在網絡之間發送和接受數據包,但不必創建諸如SMTP和其他高層協議所使用的端到端(PPP)的連接;建立在IP之上的傳輸控制協議(TCP)提供了被Telnet和SMTP程序所使用的面向連接的服務;總而言之,TCP/IP為互聯網提供了基本的網絡服務,例如文件傳輸協議(FTP)和SMTP的高層協議,都建立在TCP/IP之上。協議分層的優點在於,執行SMTP或FTP協議的程序不必知道與傳送數據包和連接其他主機有關的任何內容,因為它們可以使用TCP/IP提供的服務來完成。即執行高層協議的程序不必關心低層協議的具體細節。
SMTP定義了在互聯網上交換E-mail的方式,因此軟件版本和硬件環境對交換郵件的程序來說並不重要,只要這兩個程序都正確地執行SMTP協議,它們就可以交換郵件。
~1LZ s?2M$o3O9?
下面介紹一個使用的SMTP協議的例子:位於somedomain.gov的用戶li正在向位於otherdomain.com的zhang發送郵件。
6M*`!v,M$N0W*Xp4b)T
以下為引用的內容:+Ab a(_!lL)N~"@_i
$ sendmail-v [email]zhang@otherdomain.com[/email]<letter .p$ZPT'U+G]G
[email]zhang@otherdonain.com...Connecting[/email] to otherdomain.com via top... -K*rIdq5z'@nHp^ m
Trying 123.45.67.1...connected
220-otherdomain.com SMTP ready at Sun,14 Nov 1999 18:56:22-0500 A%sh)\+g{?$i xqx1t
220 ESMTP spoken here z"T)D0lAa,F1H}c
>>>HELO somedomain.gov
250 otherdomain.com Hello somedomain.gov [123.45.67.2],pleased to meet you 'ZoWb.K3X&[} WP
>>>MAIL From:〈[email]li@somedomain.gov[/email]〉 0e6m ?vA
250〈[email]li@somedomain.gov...Sender[/email] ok
>>>RCPT To:〈[email]zhang@otherdomain.com[/email]〉 C&nM1P8yb,rhp
250〈[email]zhang@otherdomain.com[/email])...Recipient ok
>>>DATA :M0G0C.Uhj,{
354 Enter mail,end with"." on a line by itself (TE C;R!k|+\
>>>. } E+h^#|
250 SAA08680 Message accepted for delivery
