Domain-Name-System
DNS、MX 和 SMTP。郵件儲存
我對一切如何運作有基本的了解。但我想更好地理解並深入研究。
我將如何理解所有這些東西。考慮我們正在寄信給
hello@world.com
- 當我們首先發送信件時,DNS 解析
world.com
域。- 它詢問
.
DNS 伺服器,而不是重定向到.com.
DNS 區域伺服器,而不是重定向到NS
負責儲存world.com
域資訊的伺服器/伺服器。NS
我們可以在域控制面板中更改(重定向到另一個)伺服器。NS
在找到負責提供有關此域的資訊的適當伺服器後,它會檢索有關MX
記錄的數據。MX
使用SMTP
協議將郵件發送到記錄中指定的 SMTP 伺服器- 因為我們沒有使用
POP3
協議,所以將信保存在SMTP
負責維護我們的域(MX 記錄)的伺服器上。- 所以
SMTP
伺服器備份我們在伺服器上的所有郵件,我們可以使用IMAP
協議從任何地方訪問我們的郵件。我對嗎 ?大多數時間
MX
記錄都指定了託管郵件伺服器。所以我的主要問題是
如果我將
MX
我的域記錄更改為另一台伺服器,我會失去所有郵件歷史記錄嗎?或者可以將郵件轉移到新伺服器?如果我再次切換回舊SMTP
伺服器,我會在那裡找到我所有的郵件還是會被刪除?也許我完全錯了,但我會很感激任何幫助。
- MX(SMTP 伺服器又名
MTA
)可以配置為某些郵件域的目標或中繼。- 如果它被配置為中繼,消息將被發送到另一個可以是目標或中繼的 MTA。等等。這裡的MX只是一個入口點。消息可以路由到不同的目的地、複製、終止等。這就是複雜的郵件基礎設施內部的樣子。一步一步的消息將被路由到主機,配置為目的地。否則,經過一些步驟後,消息將被拒絕為不可投遞。
- 如果主機配置為目標,則消息儲存在本地。該過程由
Local Delivery Agent
- LDA 執行。所有 SMTP 伺服器都具有一些 LDA 功能,因此它們至少可以按mailbox
格式儲存消息。Mailbox
只是一個帶有消息的普通文件。或者,消息可以儲存在maildir
或什至數據庫中,例如mysql
或postgres
。- 可以由
Mail User Agent
MUAmutt
或類似POP3
或IMAP
通過網路獲取消息。所以消息儲存在主機上不是因為 MX 上沒有 POP3。這是因為 MX 被配置為域的目標並且 LDA 配置正確。否則郵件將返回給發件人並通知:無法投遞。
如果我將我的域的 MX 記錄更改為另一台伺服器,我會失去所有郵件歷史記錄嗎?或者可以將郵件轉移到新伺服器?
常見的方法是將您的 MX 配置為中繼,將所有郵件路由到伺服器,配置為目標。您可以隨意更改 MXses,只要它們中繼到同一目標伺服器即可。但您也可以將您的郵件儲存物理移動到其他伺服器,只要它只是普通文件。
sendmail
,postfix
,exim
,等流行的電子郵件軟體功能強大qmail
,dovecot
足以建構您想要的任何配置。但這需要強大的知識和技能,因為您很容易成為垃圾郵件發送者的受害者,他們可以將配置不良的伺服器用作垃圾郵件槍。