該怎麼設定郵箱伺服器?

nephen發表於2018-12-14

最近發現一個問題,蘋果手機在設定郵箱伺服器來獲取第三方郵件時總是報錯,無法正常獲取郵件,我思考了一下,這其中肯定是有原因的,不可能是手機軟體的的問題,於是決定研究一下郵箱伺服器的一些原理,解決這個看起來很基礎的問題。

什麼是郵箱伺服器?

所謂郵箱伺服器即為網路上的客戶端儲存電子郵件(電子郵件)訊息的遠端或中央計算機稱為郵件伺服器。 郵件伺服器可以分為兩大類:傳出郵件伺服器和傳入郵件伺服器。傳出郵件伺服器稱為SMTP或簡單郵件傳輸協議伺服器。傳入郵件伺服器有兩種主要型別。POP3或郵局協議版本3伺服器以在PC本地硬碟上儲存已傳送和已接收的訊息而聞名。 IMAP或Internet訊息訪問協議伺服器始終在伺服器上儲存訊息副本。

為什麼要有郵箱伺服器?

如果沒有這一系列的郵件伺服器,您只能向電子郵件地址域與您自己的電子郵件地址匹配的人傳送電子郵件。即,您只能將一個example.com帳戶的郵件傳送到另一個example.com帳戶。

郵件傳送的過程是怎樣的?

該怎麼設定郵箱伺服器?
如上圖,電子郵件傳送協議是一種基於“推”的協議,主要包括SMTP;郵件接收協議則是一種基於“拉”的協議,主要包括POP協議和IMAP協議。 其中使用者代理UA(User Agent)是一個軟體包(程式),它的功能是:撰寫、閱讀、回覆和轉發報文,還能處理郵箱(如建立收信箱和發信箱)。 共有兩種型別的使用者代理: 命令驅動和GUI。命令驅動屬於早期的電子郵件,通過命令傳送和接收郵件,而GUI則是包含圖形介面,允許使用者使用鍵盤和滑鼠與軟體進行互動。

再結合下來進一步理解,MTA充當郵局(分揀區域和郵件承運商),處理郵件傳輸,而MDA充當郵箱,郵箱儲存郵件(只要其容量允許),直到收件人拿走它。 使用稱為MUA(郵件使用者代理)的軟體程式來檢索郵件。當MUA是安裝在使用者系統上的程式時,它被稱為電子郵件客戶端。當它是用於與傳入郵件伺服器互動的Web介面時,它被稱為webmail,這裡的MUA與上圖的UA是一個概念。

該怎麼設定郵箱伺服器?

下面來詳細看一下使用者傳送與郵件接收的過程:

  1. 單擊“傳送”按鈕時,電子郵件客戶端將使用SMTP協議連線到電子郵件提供商的SMTP伺服器(郵件傳輸代理)。假設你使用的是Gmail,那麼你的電子郵件客戶端會聯絡Gmail的SMTP伺服器 - smtp.gmail.com
  2. 你的電子郵件客戶端與SMTP伺服器通訊,為其提供你的(發件人)電子郵件地址,收件人的電子郵件地址,郵件正文和任何附件。
  3. SMTP伺服器處理收件人的電子郵件地址 - 尤其是其域。如果域名與發件人的域名相同,則郵件將直接路由到域的POP3或IMAP伺服器 - 不需要在伺服器之間進行路由。但是,如果域不同,則SMTP伺服器必須與其他域的伺服器通訊。 比如Gmail上的SMTP伺服器會檢查您的電子郵件中的收件人電子郵件地址。假設收件人是 person@google.com,則Gmail SMTP伺服器會從DNS查詢google.com的MX(郵件交換器)記錄。 MX記錄是DNS中的一條記錄,用於指定負責接受該電子郵件的郵件伺服器,如 alt1.aspmx.l.google.comaspmx.l.google.com。從MX記錄中檢索google.com的SMTP伺服器地址後,再查詢它的IP地址即A記錄,Gmail SMTP伺服器根據IP地址將該電子郵件傳送到google.com的SMTP伺服器,一般選擇MX首選項值比較低的伺服器aspmx.l.google.com,首選項值代表優先順序,如果傳遞失敗,它將嘗試返回的MX記錄列表中的另一臺伺服器,依此類推,直到成功為止。 如google.com的STMTP伺服器為:
    該怎麼設定郵箱伺服器?
  4. google.com的SMTP伺服器檢查該伺服器上是否存在“person”收件人。如果該伺服器上存在該帳戶,則會將該電子郵件轉發到其自己的IMAP / POP3伺服器(郵件傳遞代理/MDA)以儲存此電子郵件。
  5. 現在,收件人可以使用Outlook(郵件使用者代理)等電子郵件客戶端連線到此伺服器並閱讀該電子郵件。為了防止每個人檢視其他使用者的電子郵件,收件人受到名為登入名和密碼的使用者名稱的保護。有時在發件人和收件人的SMTP伺服器之間有多個站點,其實流程也是相同的。

電子郵件協議分類

上文講到了郵件伺服器可以分為兩大類:傳出郵件伺服器和傳入郵件伺服器。其中傳出伺服器採用的協議為SMTP,傳入伺服器採用的協議有POP3和IMAP兩種。下面依次進行介紹。

SMTP

SMTP 的全稱是“Simple Mail Transfer Protocol”,即簡單郵件傳輸協議。它是一組用於從源地址到目的地址傳輸郵件的規範,通過它來控制郵件的中轉方式。SMTP 協議屬於 TCP/IP 協議簇,它幫助每臺計算機在傳送或中轉信件時找到下一個目的地。

SMTP 伺服器就是遵循 SMTP 協議的傳送郵件伺服器。

SMTP通常用於在Internet埠25上執行。在歐洲廣泛使用的SMTP的替代方案是X.400。 許多郵件伺服器現在支援擴充套件簡單郵件傳輸協議(ESMTP),它允許多媒體檔案作為電子郵件傳遞。

SMTP有認證,簡單地說就是要求必須在提供了賬戶名和密碼之後才可以登入 SMTP 伺服器,這就使得那些垃圾郵件的散播者無可乘之機。

本質上來說,SMTP(簡單郵件傳輸協議)是用於傳送和接收電子郵件的TCP / IP協議。 理論上,SMTP可以通過TCP,UDP或某些第三方協議來處理。但如果你在郵件中間丟失了幾個資料包,則收件人可能甚至不會收到該郵件,如果他們這樣做,則可能會丟失金鑰資訊。 這使TCP更合適,因為它確保每個資料包都已傳送。

SMTP的通訊埠分為兩種,一種是不支援加密的,郵件是明文傳輸,埠號為25,此埠主要用於SMTP中繼。 SMTP中繼是從電子郵件伺服器到電子郵件伺服器的電子郵件傳輸。 另一種是加密埠,這裡的加密指的是郵件通訊會通過SSL/TLS加密傳輸,關於SSL/TLS更多請檢視ssl/tls是什麼?是怎麼工作的?,此埠一般使用465埠,雖然埠465從未作為IETF的官方SMTP傳輸或提交渠道釋出,但網際網路號碼分配機構(IANA)負責維護大部分核心網際網路基礎設施,為SMTPS註冊了465埠。

POP3

POP3是Post Office Protocol 3的簡稱,即郵局協議的第3個版本,它規定怎樣將個人計算機連線到Internet的郵件伺服器和下載電子郵件的電子協議。它是因特網電子郵件的第一個離線協議標準,POP3允許使用者從伺服器上把郵件儲存到本地主機(即自己的計算機)上。就像郵局職員的實體版本一樣,POP3接收並保留個人的電子郵件,直到他們拿走它為止。

POP3伺服器則是遵循POP3協議的接收郵件伺服器,用來接收電子郵件的。

POP3有兩種工作方式:刪除方式和儲存方式,可以在客戶端進行設定。刪除方式就在每一次讀取郵件後就把郵箱中的這個郵件刪除, 儲存方式就是在讀取郵件後仍然在郵箱中儲存這個郵件,該方式是通過對之前的POP3工作方式(即刪除)的缺點進行彌補,對功能進行擴充。

POP3的優點在於它很簡潔,可以以最少的錯誤來完成工作,但同時缺點就是它只適合那些使用單個裝置檢索郵件的人,如果使用刪除模式服務端是沒有備份郵件的,單個裝置下載後其餘登陸的裝置就無法再進行下載了,如果設定了儲存模式可以彌補這個缺點。

POP3埠也分為SSL/TLS加密埠995,和不加密埠110。

IMAP

IMAP全稱是Internet Mail Access Protocol,即互動式郵件存取協議,它是跟POP3類似郵件訪問標準協議之一。

IMAP4伺服器則是遵循IMAP協議的接收郵件伺服器,用來接收電子郵件的。

不同的是,開啟了IMAP後,你在電子郵件客戶端收取的郵件仍然保留在伺服器上,同時在客戶端上的操作都會反饋到伺服器上,如:刪除郵件,標記已讀等,伺服器上的郵件也會做相應的動作。所以無論從瀏覽器登入郵箱或者客戶端軟體登入郵箱,看到的郵件以及狀態都是一致的。

還有一個就是,如果選擇閱讀郵件,則會快速下載,以便可以看到 - 因為除非你需要開啟電子郵件,否則不會下載電子郵件的,這樣也就可以快速的查閱郵件列表了,不需要等所有郵件內容更新後才可以檢視。

所以,相比POP3而言,IMAP有以下優點:

  • 它允許你通過任意數量的裝置從任何地方訪問你的電子郵件。
  • 它只會在你單擊時下載郵件,無需等待所有新訊息從伺服器下載,然後才能閱讀它們。
  • IMAP不會自動下載附件。因此,您可以更快地檢查郵件,並可以更好地控制開啟哪些附件。
  • IMAP可以像POP一樣離線使用 - 您基本上可以享受兩種協議的優勢。

最後,IMAP埠也分為SSL/TLS加密埠993,和不加密埠143。

相關問題

這裡有一些問題,可能你也會遇到,我把它列舉一下。

  1. 我的郵件伺服器地址是什麼? 你的郵件伺服器地址和其他資訊應由你的電子郵件提供商提供。 通常,此資訊可以在電子郵件提供商支援頁面上找到,也可以在電子郵件提供商的文件中找到。 在你的電子郵件提供商的網站上,該資訊可能會列為SMTP和POP3地址。
  2. 我可以在網際網路上使用我想要的任何郵件伺服器嗎? 不可以。在瀏覽Internet時使用的Internet服務提供商(ISP)通常會有可以訪問電子郵件的郵件伺服器(傳入和傳出電子郵件),但通常無法訪問其他網際網路服務提供商擁有的郵件伺服器,原因是郵件伺服器只接受某些IP地址(ISP提供的IP地址),如果你的IP地址超出此範圍,你將被拒絕訪問伺服器。 但是也有例外。 在某些情況下,你可以從其他ISP提供的POP3伺服器下載電子郵件。 他們只會檢查您的使用者名稱和密碼是否正確。 並且Internet上還存在獨立於Internet服務提供商的獨立電子郵件伺服器,如果你有訪問使用者名稱和密碼,則可以通過它們傳送和接收電子郵件。 許多Web託管服務提供這種獨立的郵件伺服器。
  3. 自己是否可以自己搭建?缺點是什麼? 可以自己搭建,缺點是涉及的模組比較多,比如MTA、MDA、IMAP或者POP3伺服器等,自己搭建比較複雜,維護比較耗時。
  4. MX記錄是怎麼查詢的? 可以先查閱怎麼快速搭建一個美觀實用的部落格?瞭解一下DNS的基本原理和工作過程,傳送郵件伺服器將按照以下的順序查詢DNS中的MX記錄。
    • 查詢goodix.com的權威名稱伺服器(如果掛在dnspod上,則會給出dnspod的伺服器地址)
    • 查詢goodix.com名稱伺服器以獲取MX記錄
    • 在DNS中查詢MX記錄伺服器的A地址以獲取其IP地址 可以使用Windows自帶工具查詢SMTP伺服器IP地址如下圖:
      該怎麼設定郵箱伺服器?

怎麼設定客戶端?

繞了這麼多,終於回到了正題,其實如果真正弄懂了郵件傳輸的原理以及相關一些協議的作用,這樣就比較簡單了。 如下圖,收件伺服器採用可以與伺服器進行互動的IMAP協議,畢竟比較有優勢,也可以檢視163的網站檢視主機名為imap.163.com,而傳送伺服器沒得選,直接寫smtp.163.com就可以了,這裡的埠後不需要填,基本上都是預設的埠號。

該怎麼設定郵箱伺服器?

埠號也是可以修改的,見下圖,基本上設定都是差不多的,反過頭來看,設定比較簡單,要知道其中的原理還是要花一定時間的。

該怎麼設定郵箱伺服器?

結束語

最後再仔細想想,其實郵件收發的過程跟我們現實生活中寄快遞是一樣的邏輯,先把東西打包後交給快遞公司接收點,然後快遞公司派單送到中間的其他站點,這些接收點,中間點就相當於SMTP伺服器,快遞寄到了以後往往會存到某個附件的代收點,這個代收點就相當於POP3伺服器或者IMAP伺服器,使用者接收到了簡訊就可以自己憑簡訊取件碼去領,也可以過一段時間去領。

真是技術源於生活呀,我想創新也需要勤於對生活的思考吧。

  • 本文作者: nephen
  • 本文連結: nephen.cn/2018/12/07/…
  • 版權宣告: 本部落格所有文章除特別宣告外,均採用 CC BY-NC-SA 3.0 許可協議。轉載請註明出處!

相關文章