?? 電子郵件概述.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0048)http://www.linuxforum.net/books/jy/G.929104025.A -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY><PRE>發(fā)信人: albin (阿樂斌), 信區(qū): LINUX
標(biāo) 題: LINUX選修課講義:電子郵件概述
發(fā)信站: 碧海青天 (Fri Jun 11 21:28:45 1999), 轉(zhuǎn)信
版權(quán)聲明:
本文內(nèi)容為大連理工大學(xué)LINUX選修課講義,歡迎大家轉(zhuǎn)載,但禁止使用本材料進(jìn)行
任何商業(yè)性或贏利性活動。轉(zhuǎn)載時請保留本版權(quán)聲明。
作者:何斌武,hbwork@dlut.edu.cn,大連理工大學(xué)網(wǎng)絡(luò)中心,April 1999.
URL: ftp://ftp.dlut.edu.cn/pub/PEOPLE/albin/
------------------------------------------------------------------------------
感謝我的導(dǎo)師錢飛教授(http://come.or.jp/~fei/)多年來對大工校園網(wǎng)建設(shè)的無私幫
助及對我的熱心指導(dǎo),在他的幫助下,大工校園網(wǎng)建設(shè)取得了一定的成績,我也從他那學(xué)
到了很多,不僅是專業(yè)方面的知識,更多的是如何待人,如何作人。
--------------------------------------------------------------------------------
電子郵件管理
電子郵件是系統(tǒng)管理中最復(fù)雜的一項任務(wù),但也是最為重要的一項任務(wù),因?yàn)橛脩羰褂?較多,作何一個改動都會對所有用戶帶來影響。同時大多數(shù)用戶認(rèn)為電子郵件是UNIX中最有
價值的服務(wù),尤其是在與Internet相連的系統(tǒng)上,電子郵件更為重要。
本文主要介紹如下內(nèi)容:電子郵件是如何工作的,電子郵件相關(guān)術(shù)語,從何處得到更多
的信息,最后給出配置sendmail的實(shí)例。
本文不介紹過于復(fù)雜的郵件配置如多協(xié)議MAIL HUB(將郵件從Internet上轉(zhuǎn)發(fā)給UUCP或
DecNET)等。
一、電子郵件概述
1. Email環(huán)境的關(guān)鍵 -- sendmail
說明:
本部分內(nèi)容摘自我的導(dǎo)師錢飛教授大規(guī)模計算機(jī)網(wǎng)絡(luò)主要服務(wù)之管理方法中之電子郵件
環(huán)境的生成方法。
用戶在實(shí)際利用Email時, 所要用到的命令一般為mail命令,或一些其他專用命 令.這些
直接與用戶有關(guān)的,用于收發(fā)Mail的命令,或程序一般統(tǒng)稱為MUA(Mail User Agent).通
常,MUA的使用程序有恨多.例如,MH,MNEWS,ELM等等.
相對于此,將來自MUA的信件轉(zhuǎn)發(fā)給指定的用戶的程序一般被稱之為 MTA (Mail
Transfer Agent). 在UNIX系統(tǒng)上,最著名的MTA既是sendamil程序.sendmail是美國 加
州大學(xué)勃克利分校以Allman先生為中心的研究組所開發(fā)研制的優(yōu)秀無償軟件.
sendmail(/usr/lib/sendmail)從各種MUA程序接收信件后, 按照自身的控制格 式文件
(/etc/sendmail.cf)中所描述的規(guī)則向外界轉(zhuǎn)發(fā)信件. 因此,Email環(huán)境的成 敗將取決
于sendmail.cf的設(shè)定是否合適.
MUA MTA
+---------------+
| /bin/mail |--->|
+---------------+ |
+---------------+ s +----------------------+
| /usr/ucb/mail |--->e ---->| /var/spool/mail/$usr |
+---------------+ n +----------------------
+---------------+ d +----------------------+
| MH |--->m ---->| /usr/bin/uux |
+---------------+ a +----------------------+
+---------------+ i +----------------------+
| mnews |--->l ---->| workstation |
+---------------+ | smtp +----------------------+
+---------------+ |
| elm |--->|
+---------------+
(圖1. Email系統(tǒng)的基本結(jié)構(gòu))
圖1中給出了Email系統(tǒng)的基本結(jié)構(gòu)圖. Email系統(tǒng)看上去非常簡單,實(shí)際上卻非 常復(fù)雜.
首先,用戶需要利用mail等MUA程序編輯并發(fā)出信件. mail命令將為用戶所編輯 的信件
追加一些相應(yīng)的信息(mail head,稱之為信件頭),然后將該信件轉(zhuǎn)交給sendm ail程序處
理.sendmail對信件頭進(jìn)行解析,調(diào)查該信件之轉(zhuǎn)發(fā)方法及信件接收地址.
如果信件接收地址為本地計算機(jī)之用戶地址,則將該信件追加到/var/spool/ma il目錄
下之相應(yīng)用戶(與用戶名同名)文件中. 如果件接收地址為UUCP線路之另一側(cè) 之用戶地
址,則起動/usr/bin/uux經(jīng)由UUCP轉(zhuǎn)發(fā)信件. 如果線路為TCP/IP線路,則利 用SMTP協(xié)議
與sendmail進(jìn)行通信轉(zhuǎn)發(fā)信件.
2. Email環(huán)境的設(shè)計
在設(shè)計Email環(huán)境時,一般應(yīng)遵循以下規(guī)則.
(1)Email服務(wù)器的集中
在多機(jī)網(wǎng)絡(luò)環(huán)境中應(yīng)注意Email環(huán)境的統(tǒng)一配置,同一組織內(nèi)的Email服務(wù)器不宜 過多.
否則,將增加管理負(fù)荷.
(2)共享信件緩沖池時,需要考慮資源競爭問題
在小規(guī)模網(wǎng)絡(luò)中,為了實(shí)現(xiàn)Email之共享環(huán)境, 管理人員一般利用NFS將各臺UNIX 工作站
之信件緩沖池(/var/spool/mail)mount到Email服務(wù)器上.這時,需要注意 的是,信件系
統(tǒng)是一種典型的分布處理環(huán)境, 對于共享文件如果文件自瑣(lock) 問題處理不夠得當(dāng),
有時將會引起重大事故(輕則丟失信件,重則損壞整個硬盤系 統(tǒng)).
(3)統(tǒng)一信件代碼
在傳統(tǒng)的UUCP中繼網(wǎng)絡(luò)上,網(wǎng)絡(luò)上各個主要Email中繼站上一般采用"7位通"(7位 代碼)
之傳遞方式. 因此,要透過廣域網(wǎng)傳遞多字節(jié)文字(中日文等)信件時,必須 進(jìn)行適當(dāng)?shù)?代碼轉(zhuǎn)換.在日本,網(wǎng)絡(luò)上的省缺規(guī)定為7位JIS代碼. 這就是說,用戶 利用MUA發(fā)送信件
時,必須將信件文本轉(zhuǎn)換成JIS代碼文本,或利用專用JIS代碼視 窗,或編輯器來直接編輯
JIS碼文件.
近年來,隨著廣域網(wǎng)技術(shù)之發(fā)展,sendmail(V8)等MTA之改進(jìn),在點(diǎn)對點(diǎn)(point to point)
之TCP/IP線路上已經(jīng)可以實(shí)現(xiàn)直接"8位通"之信件傳遞. 筆者在日常工作 中也常常與中
國國內(nèi)網(wǎng)友直接交換GB代碼信件.但是,需要注意的是,在一些站點(diǎn) 上,由于MTA版本過于
陳舊, 經(jīng)由這些站點(diǎn)轉(zhuǎn)發(fā)的8位碼會被自動過濾成7位碼(丟 掉高位碼),造成亂碼.因此,
這時,有必要確認(rèn)接收側(cè)之MTA版本.可以相信在不遠(yuǎn) 的將來,廣域網(wǎng)上之工作站都將陸
續(xù)切換成新的MTA(sendmail V8以上).
(4)不斷更新sendmail版本
sendmail作為無償軟件尚在不斷地進(jìn)行著本本更新,以排除安全性問題.眾所周 知,利用
sendmail所存在著的一些漏洞來進(jìn)行網(wǎng)絡(luò)非法侵入的hacking活動仍很盛行. 為了保護(hù)
您的系統(tǒng)避免外侵,建議各個網(wǎng)絡(luò)管理者跟蹤sendmail之版本,盡可能地采 用最新版.目
前的最新版本為sendmail.8.9.3.tar.gz.
(5)確定自己的郵件地址表現(xiàn)
各入網(wǎng)單位必須采用INTERNIC所指定的正式域名. 然后根據(jù)自己所在域來確定 郵件地
址形式.
(6)確定線路類型
電子郵件系統(tǒng)的虛擬配信線路大致有以下4種.
a.機(jī)內(nèi)直接配信
本地郵件傳送方式.本地計算機(jī)內(nèi)的用戶向本地其他用戶傳遞信件.
b.UUCP線路配信
經(jīng)由UUCP線路向其他計算機(jī)上的用戶傳遞信件.
c.SMTP配信
利用SMTP協(xié)議經(jīng)由TCP/IP線路向其他計算機(jī)上的用戶傳遞信件.
d.域名服務(wù)器下SMTP配信
發(fā)送信件時用域名服務(wù)器來查尋收方地址,利用域名服務(wù)器所提示的MX記錄 來確定
接收側(cè)地址, 然后用SMTP(或ESMTP)協(xié)議經(jīng)由TCP/IP線路向其他計算 機(jī)上的用戶傳
遞信件.
二、電子郵件系統(tǒng)相關(guān)術(shù)語
電子郵件是從MUA(Mail User Agent)如mailx/Netscape Mail/Eudora開始的,在寫
完信件之后MUA把信件轉(zhuǎn)發(fā)給郵件路由如sendmail, 郵件路由然后將信息發(fā)送給MTA(Mail
Trasfer Agent);然后此信件通過多個主機(jī)或網(wǎng)絡(luò)到達(dá)最終的投遞代理,由投遞代理將
郵件信息追加到接收者的郵箱文件中。
MUA:郵件閱讀或發(fā)送程序,如SVR4 mailx,elm, pine, 在郵件系統(tǒng)中用戶只于MUA
打交道,MUA將郵件系統(tǒng)的復(fù)雜性與用戶隔離開。
Mail Router: 程序,從用戶處接收郵件并決定其目的地址以及如何到達(dá)目的地。
比如根據(jù)接收者的地址不同,電子郵件可能通過TCP/IP網(wǎng)絡(luò)發(fā)送,或者通過
UUCP或FAX發(fā)送。郵件路由使用接收者地址及其內(nèi)部的配置信息來選擇一個最
好的MTA,然后將郵信件轉(zhuǎn)給此MTA。
MTA(Mail Transport agent): 一個專用程序,其作用類似于郵局,用于在兩個機(jī)器
之間發(fā)送郵件。通常,一個機(jī)器上只有一個MTA。sendmail程序就是一個MTA,此
外還有其他MTA,如MMDF,Smail 3.x, qmail以及zmailer等。
MTA能夠理解特定網(wǎng)絡(luò)的EMAIL協(xié)議并通過網(wǎng)絡(luò)傳輸信件,如UUCP可通過UUCP連接
發(fā)送信件,但無法處理SMTP信件。
Delivery Agent(投遞代理):sendmail自己并不完成最終的郵件發(fā)送,它要調(diào)作其他
的程序來完成最后的投遞服務(wù)。在SVR4系統(tǒng)中一般是/bin/mail.
實(shí)際情況是MTA,MUA以及Mail Router之間的區(qū)別往往比較模糊,如sendmail是一個
主要的Mail Router, 但同時又可以作為MTA,因?yàn)閟endmail含有SMTP功能,可以在TCP/IP
網(wǎng)絡(luò)上傳送郵件,而在郵件接收端同樣也是由sendmail來完成最終郵件發(fā)送之前的準(zhǔn)備工
作;此外一些MUA自帶一定的郵件路由功能,如Netscape Mail可以進(jìn)行SMTP對話, 因此可
以實(shí)現(xiàn)對SMTP電子郵件的發(fā)送。
1、不同的MUA
mail: 用戶郵件目錄 /var/spool/mail/$USER, 變量: $MAIL
用戶轉(zhuǎn)發(fā)文件 $HOME/.forward
elm: 菜單驅(qū)動
pine: 字符界面的全屏幕操作MUA,應(yīng)用較為廣泛,功能較elm強(qiáng)大。
Netscape Mail
Microsoft Outlook Express
2. 背景資料及其它相關(guān)資源
RFC 821 STMP
RFC 822 EMAIL格式規(guī)范
RFC 1425 ESMTP
RFC 1123 對主機(jī)的要求及對前面的RFC的一些修改
sendmail文檔
SIOG: Sendmail Installation and Operation Guide
建議仔細(xì)閱讀,重要指南
Sendmail: An Internet Mail Router
Mail System and Address in 4.2BSD
以上文檔sendmail源代碼包中自帶,由sendmail作者Eric Allmen編寫。
Sendmail, Second Edition, O'Reilly
By Bryan Costales with Eric Allman
UNIX Unleashed, System Administrator Edition,
Chapter 24: Mail Administratin
http://www.sendmail.org/
Sendmail FAQ
3. Internet的郵件協(xié)議
為了解sendmail所完成的不同工作,需要了解一些Internet協(xié)議,協(xié)議是軟件及硬件
進(jìn)行通訊時所要遵守的標(biāo)準(zhǔn).
一般來說協(xié)議是分層的,上一層協(xié)議使用底層協(xié)議作為基礎(chǔ),如ip協(xié)議不需要進(jìn)行
端到端的連接即可以進(jìn)行數(shù)據(jù)傳送,而smtp或其他高層協(xié)議則要進(jìn)行端到端的連接,
tcp建立在ip層之上,向telnet及smtp等提供面向連接的服務(wù).總的來說,TCP/IP提供
Internet上的基本網(wǎng)絡(luò)服務(wù),ftp/smtp各種應(yīng)用層協(xié)議則是建立在TCP/IP基礎(chǔ)上的.分
層帶來的好處是諸如smtp/ftp高層應(yīng)用程序無需處理數(shù)據(jù)包的傳輸與其他主機(jī)的連接
等底層任務(wù),它們只需使用TCP/IP所提供的相應(yīng)服務(wù).
smtp定義如何在Internet上交換email信息,對于smtp來說,只要兩端的程序(smtp
Server)能夠正常完成SMTP功能,就可以進(jìn)行郵件交換,而不論服務(wù)器的軟硬件環(huán)境是否
相同.
sendmail完成smtp任務(wù)示例:
[hbwork@helius mirror]$ /usr/sbin/sendmail -v hbwork@dlut.edu.cn <
../.pinerc
hbwork@dlut.edu.cn... Connecting to gingko.dlut.edu.cn. via esmtp...
220 gingko.dlut.edu.cn ESMTP Sendmail 8.9.3/8.9.3; Thu, 10 Jun 1999
10:34:48 +09
00 (CDT)
>>> EHLO helius.dlut.edu.cn
250-gingko.dlut.edu.cn Hello helius.dlut.edu.cn [202.118.66.81], pleased
to meet
you
250-EXPN
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -