一、概述
- 傳遞迅速
- 低廉
- 標(biāo)準(zhǔn):簡單郵件傳送協(xié)議SMTP、互聯(lián)網(wǎng)文本報(bào)文格式卤恳、通用互聯(lián)網(wǎng)郵件擴(kuò)充MIME
- 三個(gè)組成:用戶代理、郵件服務(wù)器寒矿、郵件發(fā)送協(xié)議突琳、郵件讀取協(xié)議
用戶代理
UA:用戶與電子郵件系統(tǒng)的接口
運(yùn)行在用戶電腦的一個(gè)程序
又稱:電子郵件客戶端軟件
功能:撰寫、顯示符相、處理拆融、通信
郵件服務(wù)器的協(xié)議:用戶代理向郵件服務(wù)器發(fā)送郵件或在郵件服務(wù)器之間發(fā)送郵件、用戶用戶代理從郵件服務(wù)器讀取郵件
郵件服務(wù)器同時(shí)充當(dāng)客戶和服務(wù)器
發(fā)送步驟
- 發(fā)件人調(diào)用用戶代理撰寫啊终、編輯
- 發(fā)件人點(diǎn)擊發(fā)送
- 用戶代理把郵件用SMTP協(xié)議發(fā)給發(fā)送方郵件服務(wù)器镜豹,用戶代理充當(dāng)SMTP客戶,發(fā)送方郵件服務(wù)器充當(dāng)SMTP服務(wù)器
- SMTP服務(wù)器收到用戶代理發(fā)來的郵件蓝牲,將郵件臨時(shí)存放在郵件緩存隊(duì)列中趟脂,等待發(fā)送到接收方的郵件服務(wù)器
- 發(fā)送方郵件服務(wù)器的SMTP客戶與接收方郵件服務(wù)器的SMTP服務(wù)器建立TCP連接,然后就把郵件緩存隊(duì)列中的郵件依次發(fā)送出去
- 運(yùn)行在接收方郵件服務(wù)器中的SMTP服務(wù)器進(jìn)程收到郵件例衍,把郵件放入收件人的用戶郵箱中昔期,等待收件人進(jìn)行讀取
- 收件人在打算收信時(shí),就運(yùn)行本地用戶代理佛玄,使用POP3協(xié)議讀取發(fā)送給自己的郵件
組成
信封 + 內(nèi)容
傳輸程序根據(jù)郵件信封上的信息來傳送郵件
電子郵件地址格式:用戶名 @ 郵件服務(wù)器的域名
@在硼一,用戶名唯一
二、簡單郵件傳送協(xié)議SMTP
- 規(guī)定兩個(gè)相互通信的SMTP進(jìn)程之間應(yīng)如何交換信息
- 客戶服務(wù)器方式
- 14條命令和21種應(yīng)答信息
- 端口:25
1. 建立連接
SMTP 進(jìn)程建立TCP連接
連接建立后梦抢,接收方(SMTP服務(wù)器)發(fā)出“220 Service ready”欠动,然后SMTP客戶向SMTP服務(wù)器發(fā)送HELO命令,附上發(fā)送方主機(jī)名,SMTP服務(wù)器若有能力接收具伍,則回答”250 OK“翅雏,不可用則回答”421 Service not available“
SMTP不使用中間的郵件服務(wù)器,TCP連接是發(fā)送方和接收方這兩個(gè)郵件服務(wù)器直接建立
2. 郵件傳送
- 從MAIIL命令開始
- 后面有發(fā)件人的地址
- SMTP服務(wù)器準(zhǔn)備好則回答”250 OK“人芽,否則返回一個(gè)代碼指出原因(451處理時(shí)出錯(cuò))
- 跟著一個(gè)或多個(gè)RCPT命令望几,取決于該郵件發(fā)送給多少個(gè)收件人
- 格式:RCPT TO: <收件人地址>
- 每發(fā)送一個(gè)RCPT命令,都應(yīng)當(dāng)有相應(yīng)的信息從SMTP服務(wù)器返回
- 作用:先弄清楚接收方系統(tǒng)是否已做好接收郵件的準(zhǔn)備萤厅,然后再發(fā)送郵件
- 再下面是DATA命令橄抹,表示開始傳送郵件的內(nèi)容
- SMTP服務(wù)器返回的信息是:"354 Start mail input; end with<CRLF>.<CRLF>"(兩個(gè)回車換行中間用一個(gè)點(diǎn)隔開)
- 若不能接收,則返回421(服務(wù)器不可用)
- 發(fā)送完畢:再發(fā)送<CRLF>.<CRLF>表示郵件內(nèi)容結(jié)束
- 若SMTP服務(wù)器收到:則返回"250 OK"惕味,或返回差錯(cuò)代碼
- 雖然SMTP使用TCP連接楼誓,但“發(fā)送成功”不保證收件人讀取該郵件
3. 連接釋放
SMTP客戶發(fā)送 QUIT 命令,SMTP 服務(wù)器返回信息是”221(服務(wù)關(guān)閉)”名挥,表示SMTP同意釋放TCP連接疟羹,郵件傳送的全部過程即結(jié)束
三、電子郵件的信息格式
信封的首部信息的完善
郵件內(nèi)容首部的重要關(guān)鍵字:To禀倔、Subject
To:一個(gè)或多個(gè)收件人的電子郵件地址
Subject:郵件的主題
Cc:抄送榄融,留下一個(gè)“復(fù)寫副本”
Bcc:盲復(fù)寫副本,收件人不知道郵件副本的事情救湖,又稱為暗送
From:發(fā)件人的電子郵箱
Date:發(fā)信日期
Rely-To:對(duì)方回信所用到的地址
四愧杯、郵件讀取協(xié)議POP3和IMAP
- 郵局協(xié)議POP
- 簡單、功能有限
POP3:
- 客戶服務(wù)器的工作方式
- 接收郵件的用戶計(jì)算機(jī)的用戶代理需要運(yùn)行POP3客戶程序
- 郵件服務(wù)器則運(yùn)行POP3服務(wù)器程序
- 特點(diǎn):只要用戶從POP3服務(wù)器讀取了郵件鞋既,POP3服務(wù)器就把該郵件刪除
IMAP:
- 網(wǎng)際報(bào)文存取協(xié)議
- 復(fù)雜
- 客戶服務(wù)器
- 聯(lián)機(jī)協(xié)議
- 用戶在自己的計(jì)算機(jī)上運(yùn)行IMAP客戶程序力九,郵件服務(wù)器上的IMAP服務(wù)器程序建立TCP連接
- 用戶在自己的計(jì)算機(jī)上就可以操縱郵件服務(wù)器的郵箱
- 用戶直接看到郵件的首部,需打開邑闺,該郵件才傳到用戶的計(jì)算機(jī)上
- 用戶未發(fā)出刪除郵件命令之前跌前,IMAP服務(wù)器郵箱中的郵件一直保存
- 優(yōu)點(diǎn):隨時(shí)查看且預(yù)覽
- 缺點(diǎn):如果沒有將郵件復(fù)制到本地,查閱需上網(wǎng)
五检吆、基于萬維網(wǎng)的電子郵件
- 使用萬維網(wǎng)電子郵件不再需要在計(jì)算機(jī)中再安裝用戶代理軟件
- 瀏覽器本身可以向用戶提供非常友好的電子郵件界面
六、通用互聯(lián)網(wǎng)郵件擴(kuò)充MIME
1. MIME概述
-
SMTP缺點(diǎn)
SMTP缺點(diǎn) (1)不能傳送可執(zhí)行文件或其他二進(jìn)制對(duì)象 (2)限于傳送7位的ASCII碼 (3)SMTP服務(wù)器會(huì)拒絕超過一定長度的郵件 (4)回車程储、換行的刪除和增加
超過76個(gè)字符時(shí)的處理蹭沛;截?cái)嗷蜃詣?dòng)換行
后面多余空格的刪除
將制表符tab轉(zhuǎn)換為若干個(gè)空格 -
通過互聯(lián)網(wǎng)郵件擴(kuò)充MIME
繼續(xù)使用原來的郵件的格式
增加郵件主題的結(jié)構(gòu)、定義傳送非ASCII碼的編碼規(guī)則
-
內(nèi)容
(1)新字段 (2)增加內(nèi)容格式 (3)傳送編碼 5個(gè)新的郵件首部字段章鲤,可包含在原來的郵件首部中 定義許多郵件內(nèi)容格式摊灭,對(duì)多媒體電子郵件的表示進(jìn)行標(biāo)準(zhǔn)化 定義傳送編碼,可對(duì)任何內(nèi)容格式進(jìn)行轉(zhuǎn)換败徊,而不被郵件系統(tǒng)改變 -
5個(gè)新字段的意義
字段名 意義 MIME-Version 標(biāo)志MIME版本 Content-Description 可讀字符串帚呼,說明此郵件是否是圖像、音頻、視頻 Conten-Id 郵件的唯一標(biāo)識(shí)符 Conten-Transfer_Encoding 在傳送時(shí)郵件的主體是如何編碼的 Conten-Type 說明郵件主體的數(shù)據(jù)類型和子類型
2. 內(nèi)容傳送編碼
Conten-Transfer_Encoding
- 最簡單的編碼:7位ASCII碼煤杀,而每行不超過1000字符
- quoted-printale
- 適用于所傳送的數(shù)據(jù)只有少量的非ASCII碼
- 要點(diǎn):對(duì)于所有可打印的ASCII碼眷蜈,除特殊字符等號(hào)“=”外,都不改變
- base64編碼
- 把二進(jìn)制代碼劃分為一個(gè)個(gè)24位長的單元
- 把每一個(gè)24位單元?jiǎng)澐譃?個(gè)6位組
- 每一個(gè)6位組轉(zhuǎn)換為ASCII碼
3. 內(nèi)容類型
Conten-Type說明必須含有兩個(gè)標(biāo)識(shí)符:內(nèi)容類型和子類型沈自,中間用“/”分開
內(nèi)容類型 | 子類型 | 說明 |
---|---|---|
text(文本) | 不同格式的文本 | |
image(圖像) | 不同格式的靜止圖像 | |
audio(音頻) | 可聽見的聲音 | |
video(視頻) | 不同格式的影片 | |
model(模型) | 3D模型 | |
application(應(yīng)用) | 不同應(yīng)用程序產(chǎn)生的數(shù)據(jù) | |
message(報(bào)文) | 封禁的報(bào)文 | |
multipart | mixed酌儒、alternative、parallel枯途、digest | 多種類型的組合 |
子類型不斷增加忌怎,上百種
- multipart的子類型
- mixed:允許單個(gè)報(bào)文含有多個(gè)相互獨(dú)立的子報(bào)文
- 每個(gè)報(bào)文可有自己的類型和編碼
- 關(guān)鍵字:Boundary=,定義分隔報(bào)文各部分所用的字符串
- alternative:允許單個(gè)報(bào)文含有同一數(shù)據(jù)的多種表示
- 多個(gè)使用不同硬件和軟件系統(tǒng)的收件人發(fā)送備忘錄
- parallel:允許單個(gè)報(bào)文含有可同時(shí)顯示的各個(gè)子部分
- digest:允許單個(gè)報(bào)文含有一組其他報(bào)文
- mixed:允許單個(gè)報(bào)文含有多個(gè)相互獨(dú)立的子報(bào)文