相信大家在日常工作生活中少不了和郵件打交道,比如我們會用郵件進行信息交流,向上級匯報日常工作;再比如大家熟悉的某個web系統注冊階段,通常會有一個功能,點擊發送到目標郵箱的鏈接完成賬戶激活。但是郵件發送的原理是什么?郵件是如何發送的呢?本系列教程將會講解郵件的基本常識與概念,郵件的協議以及郵件服務器的工作原理,然后用javamail 發送郵件的基本實現過程,郵件內嵌圖片等高級郵件技巧。相信大家看完后,一定會有所收獲。
1、電子郵件的發送和接收過程
和以往博客一樣,lz這里先給出用戶a從qq郵箱發送郵件到用戶b163郵箱的圖示,然后對圖示的過程進行詳細的介紹:
圖示的六個步驟分別進行如下的說明:
①、用戶a的電子郵箱為:[email protected],通過郵件客戶端軟件寫好一封郵件,交到qq的郵件服務器,這一步使用的協議是smtp,對應圖示的①;
②、qq郵箱會根據用戶a發送的郵件進行解析,也就是根據收件地址判斷是否是自己管轄的賬戶,如果收件地址也是qq郵箱,那么會直接存放到自己的存儲空間。這里我們假設收件地址不是qq郵箱,而是163郵箱,那么qq郵箱就會將郵件轉發到163郵箱服務器,轉發使用的協議也是smtp,對應圖示的②;
③、163郵箱服務器接收到qq郵箱轉發過來的郵件,也會判斷收件地址是否是自己,發現是自己的賬戶,那么就會將qq郵箱轉發過來的郵件存放到自己的內部存儲空間,對應圖示的③;
④、用戶a將郵件發送了之后,就會通知用戶b去指定的郵箱收取郵件。用戶b會通過郵件客戶端軟件先向163郵箱服務器請求,要求收取自己的郵件,對應圖示的④;
⑤、163郵箱服務器收到用戶b的請求后,會從自己的存儲空間中取出b未收取的郵件,對應圖示⑤;
⑥、163郵箱服務器取出用戶b未收取的郵件后,將郵件發給用戶b,對應圖示的⑥;最后三步用戶b收取郵件的過程,使用的協議是pop3;
上面的步驟可能大家不太明白,這里面出現了很多名詞,比如郵件客戶端軟件,郵件服務器,smtp和pop3協議(郵件傳輸協議)等等。不明白沒關系,接下來我們來詳細介紹這些名詞。
1、郵件服務器
圖示出現了兩個郵件服務器,qq和163郵件服務器。用戶想要在網上收發郵件,必須要有專門的郵件服務器。郵件服務器我們可以假想為現實生活中的郵局。
如果按功能劃分,郵件服務器可以劃分為兩種類型:
①、smtp郵件服務器:用戶替用戶發送郵件和接收外面發送給本地用戶的郵件,對應上圖的第一、二步。它相當于現實生活中郵局的郵件接收部門(可接收普通用戶要投出的郵件和其他郵局投遞進來的郵件)。
②、pop3/imap郵件服務器:用戶幫助用戶讀取smtp郵件服務器接收進來的郵件,對應上圖的第六步。它相當于專門為前來取包裹的用戶提供服務的部門。
2、電子郵箱
電子郵箱也稱為e-mail地址,比如用戶a的[email protected],和用戶b的[email protected]。用戶能通過e-mail地址標識自己發送的電子郵件,同時也可以通過這個地址接收別人發來的電子郵件。電子郵箱需要到郵件服務器進行申請,也就是說,電子郵箱其實就是用戶在郵件服務器上申請的賬戶。郵件服務器會把接收到的郵件保存到為該賬戶所分配的郵箱空間中,用戶通過用戶名密碼登錄到郵件服務器查收該地址已經收到的郵件。一般來講,郵件服務器為用戶分配的郵箱空間是有限的。
3、郵件客戶端軟件
我們可以直接在網站上進行郵件收發,也可以用郵件客戶端軟件。比如常見的foxmail,outlook express。郵件客戶端軟件通常集郵件撰寫,發送和收發功能于一體,主要用于幫助用戶將郵件發送給smtp郵件服務器和從pop3/imap郵件服務器讀取用戶的電子郵件。
4、郵件傳輸協議
電子郵件需要在郵件客戶端和郵件服務器之間,以及兩個郵件服務器之間進行郵件傳遞,那就必須要遵守一定的規則,這個規則就是郵件傳輸協議。下面我們分別簡單介紹幾種協議(后面會詳細講解):
①、smtp協議:全稱為 simple mail transfer protocol,簡單郵件傳輸協議。它定義了郵件客戶端軟件和smtp郵件服務器之間,以及兩臺smtp郵件服務器之間的通信規則。
②、pop3協議:全稱為 post office protocol,郵局協議。它定義了郵件客戶端軟件和pop3郵件服務器的通信規則。
③、imap協議:全稱為 internet message access protocol,internet消息訪問協議,它是對pop3協議的一種擴展,也是定義了郵件客戶端軟件和imap郵件服務器的通信規則。
我們說所有的郵件服務器和郵件客戶端軟件程序都是基于上面的協議編寫的。
5、總結
本篇博客我們給出了電子郵件發送和接收的圖示講解,以及對于郵件服務器、郵件客戶端軟件、郵件傳輸協議的簡單介紹。下一篇博客我們將重點講解郵件的傳輸協議,并手動通過smtp協議發送郵件,pop3協議接收郵件!
原文鏈接:http://www.cnblogs.com/ysocean/p/7652934.html