郵箱開發(1)之基礎協議認知

初識郵箱
前言
  • 郵箱對我們來說是再熟悉不過了,它與我們的生活、工作緊密聯系在一起:登錄、注冊、往來溝通...無處不在;
  • 郵箱的使用很便捷,可是郵箱是如何傳輸、投遞信息呢?電子郵件協議
  • 電子郵件協議主要包括IMAPPOP3SMTP協議;
  • 這篇文章將給大家介紹一下郵件所用的協議、協議格式標準以及不同協議之間的區別與聯系;
SMTP
  • SMTP的全稱是Simple Mail Transfer Protocol簡單郵件傳輸協議,在1982年正式提出。它是一組用于從源地址到目的地址傳輸郵件的規范,通過它來控制郵件的中轉方式。SMTP 協議屬于 TCP/IP協議簇,它幫助每臺計算機在發送或中轉信件時找到下一個目的地。SMTP 服務器就是遵循 SMTP 協議的發送郵件服務器。
  • SMTP認證,簡單地說就是要求必須在提供了賬戶名和密碼之后才可以登錄 SMTP 服務器,這就使得那些垃圾郵件的散播者無可乘之機。增加SMTP 認證的目的是為了使用戶避免受到垃圾郵件的侵擾。
  • SMTP是一種應用層、基于文本格式的協議,主要用于郵件服務器間的連接、數據傳輸等。
POP
  • POPPost Office Protocol的簡稱,即郵局協議。現在主要使用是POP3郵局協議的第3個版本;
  • 它規定怎樣將個人計算機連接到Internet的郵件服務器和下載電子郵件的電子協議, 是TCP/IP協議族中的一員(默認端口是110);
  • 它是因特網電子郵件的第一個離線協議標準,POP3允許用戶從服務器上把郵件存儲到本地主機(即自己的計算機)上,同時刪除保存在郵件服務器上的郵件,而POP3服務器則是遵循POP3協議的接收郵件服務器,用來接收電子郵件的。
POP與POP3區別
  • POP協議支持離線郵件存儲轉發處理即客戶端程序連接服務器,下載所有未閱讀的電子郵件;一旦將郵件從郵件服務器端送到客戶端上,郵件服務器上的郵件將會被刪除;
  • 目前的POP3郵件服務器大都可以只下載郵件,服務器端并不刪除,也就是改進后的POP協議;
  • POP3協議允許電子郵件客戶端下載服務器上的郵件,但是在客戶端的操作(如移動郵件、標記已讀等),不會反饋到服務器上。比如通過客戶端收取了郵箱中的3封郵件并移動到其他文件夾,郵箱服務器上的這些郵件是沒有同時被移動的,本地化的操作不會同步到郵箱服務器。
IMAP
  • IMAP全稱是Internet Mail Access Protocol,即交互式郵件訪問協議,是一個應用層協議(端口是143)。用來從本地郵件客戶端(Outlook Express、Foxmail、Mozilla Thunderbird等)訪問遠程服務器上的郵件。
IMAP和POP3的區別
  • IMAPPOP3那樣提供了方便的郵件下載服務,讓用戶能進行離線閱讀。IMAPPOP3是郵件訪問最為普遍的Internet標準協議。不同點如下所示:
  • IMAP提供Webmail與電子郵件客戶端之間的雙向通信,客戶端收取的郵件仍然保留在服務器上,同時在客戶端上的操作都會反饋到服務器上(如:刪除郵件標記已讀等,服務器上的郵件也會做相應的動作。所以無論從瀏覽器登錄郵箱或者客戶端軟件登錄郵箱,看到的郵件以及狀態都是一致的)。而POP3在客戶端的操作不會同步到服務器上;
  • IMAP更好地支持了從多個不同設備中隨時訪問新郵件;
  • IMAP提供的摘要瀏覽功能可以讓你在閱讀完所有的郵件到達時間、主題、發件人、大小等信息后才作出是否下載的決定;
  • POP3需要下載未閱讀的郵件,IMAP可以不用把所有的郵件全部下載,而是通過客戶端直接對服務器上的郵件進行操作。所有通過IMAP傳輸的數據都會被加密,從而保證通信的安全性;
  • IMAP 整體上為用戶帶來更為便捷和可靠的體驗。POP3 更易丟失郵件或多次下載相同的郵件。
RFC822標準
  • RFC 822是電子郵件的標準格式,電子郵件除了是由一個Internet用戶傳遞給另一個用戶的信息之外,還必須包含附加的服務信息,這兩個部分加在一起叫做電子郵件的標準格式,外文簡稱RFC 822(摘錄于百度百科);
  • 該標準主要定義郵件結構和數據格式,為郵箱服務器的數據解析和數據重組提供統一的處理方式,比如:一些處理郵件代收發的第三方庫都必須按照該標準處理數據。
SSL
  • SSL(Secure Sockets Layer 安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網絡通信提供安全及數據完整性的一種安全協議。TLSSSL在傳輸層對網絡連接進行加密;
  • SSL協議提供的服務主要有:
1、認證用戶和服務器,確保數據發送到正確的客戶機和服務器;
2、加密數據以防止數據中途被竊取;
3、維護數據的完整性,確保數據在傳輸過程中不被改變。
  • 基于數據的安全性,筆者建議使用郵箱是設置SSL協議。
郵件發送的基本原理
截圖來自謝希仁《計算機網絡》
  • 1.發信人在用戶代理上編輯郵件,并寫清楚收件人的郵箱地址;
  • 2.用戶代理根據發信人編輯的信息,生成一封符合郵件格式的郵件;
  • 3.用戶代理把郵件發送到發信人的的郵件服務器上,郵件服務器上面有一個緩沖隊列,發送到郵件服務器上面的郵件都會加入到緩沖隊列中,等待郵件服務器上的SMTP客戶端進行發送;
  • 4.發信人的郵件服務器使用SMTP協議把這封郵件發送到收件人的郵件服務器上(它會自動根據收件人的郵箱來分析出收件人的郵箱服務器);
  • 5.收件人的郵件服務器收到郵件后,把這封郵件放到收件人在這個服務器上的信箱中;
  • 6.收件人使用用戶代理來收取郵件。首先用戶代理使用POP3協議來連接收件人所在的郵件服務器,身份驗證成功后,用戶代理就可以把郵件服務器上面的收件人郵箱里面的郵件讀取出來,并展示給收件人。
小結
  • 本文總結郵箱相關傳輸協議,以及不同協議之間的區別。熟悉了這些之后,就可以為后續的郵件開發提供基本的理論支持了。
參考文獻
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容