「干货」什么Linux是邮件服务器?
每天我們都會收到很多的郵件,但是從來沒有了解過郵件是怎么實現收發的,也沒有自己配置過一臺郵件服務器。
今天我們就來認識一下什么是郵件服務器。
常見的郵件服務器軟件介紹
Sendmail:sendmail 是最古老的 MTA(Mail Transfer Agent,電子郵件系統)之一,最早它誕生的時候,Internet 還沒有被標準化,當時主機之間使用的是 UUCP 技術來交換郵件。它被設計得比較靈活,便于配置和運行于各種類型的機器。
Qmail:qmail 是新生一代的 MTA 代表,它以速度快、體積小、易配置安裝等特性而著稱。作者 D.J.Bernstein 是一個數學教授,富有傳奇色彩。他于 1995 年開發 qmail,1996 年發布 0.70 版,并使用了多種當時比較先進的 技術,包括 Maildir,與 sendmail 單個 binary 不同的模塊化設計,權限分離,以及使用了大量由他編寫的配套工具,如 daemontool,ucsip-tcp 等。qmai 迅速成為了 Internet 上最有名的 MTA,使用者眾。
postfix:postfix 如今已經獨樹一幟,流水線、模塊化的設計,兼顧了效率和功能。靈活的配置和擴展,使得配置 postfix 變得富有趣味。其主要的特點是速度快、穩定,而且配置/功能非常強大,并和 sendmail 類似,提供了與外部程序對接的 API/protocol。尤其是配置部分,postfix 另一個優勢是至今依然保持活躍的開發工作,而且穩步發展,適合高流量大負載的系統,擴充能力較強。本實驗也是基于 postfix 服務器軟件來實現。
郵件服務器原理介紹
下面我們將會學習郵件服務器原理。
郵件服務器基本的工作原理
- MUA(Mail User Agent):向外發送郵件,以及提供用戶瀏覽與編寫郵件的功能。
- MTA(Mail Transfer Agent):(可以理解為 smtpd 服務器)幫忙將用戶的郵件傳遞出去或接收進來。
- MDA(Mail Delivery Agent):將接收下來的郵件存放到對應用戶郵筒當中的程序。通過分析 MTA
所收到郵件的表頭或內容,來判斷此郵件是屬于哪個用戶,然后決定將此郵件投遞給哪個用戶的郵筒里。 - MRA(Mail Retrieval Agent):通過 MRA 服務器提供的郵政服務協議(POP)來接收自己的郵件。
用戶(MUA)通過 SMTP 協議將郵件發送到服務器(MTA),服務器分解發現如果是本地的郵件傳輸則通過 lmtp 來傳送,如果是遠程郵件將調用本地的客戶端使用 SMTP 協議向對方服務器傳送。
當對方的服務器接收到郵件之后,發現如果不是本機所負責的域,則將郵件交給本機的郵件客戶端,根據郵件目標域請求 DNS 解析,將郵件發送到目標服務器,或者丟至下一跳此過程稱為郵件中繼,如果發現是本機負責區域內的用戶,則 SMTPD 將郵件轉交給 MDA,由 MDA 把郵件傳遞到用戶的郵筒。
用戶通過 MUA 查看郵件的時候,會將郵件從郵筒拉到用戶家目錄,保存為 mbox 的文件。
郵件中繼:
- SMTPD 要支持郵件路由功能,需要打開 Open Relay 開放式中繼。
- SMTPD 是根據收件人判斷郵件是否需要中繼,而且只給指定的客戶端中繼。
郵件服務器與 DNS 之間的關系
關于 DNS 的介紹和 DNS 服務器的配置可以查看《Linux 系統搭建及配置 DNS 服務器》。
**注:**當 DNS 上存在多個 MX 記錄的主機這時就是根據 DNS 的郵件級判斷了。DNS 上定義的值越小,其優先級越高。輔助交換器接受到郵件并不能保存郵件。而是這個輔助交換器會等到主郵件交換器空閑的時候把代替它接受下來的郵件在轉給主郵件交換器。所以任何郵件處理都是主郵件交換器處理的。所以我們實際情況下,如果有 2 臺服務器做郵件交換器,性能比較高的應該為主的。
參考資料
如果你覺得這篇文章有用的話就點一個贊吧!
關注我,收獲更多編程知識和實用干貨!
總結
以上是生活随笔為你收集整理的「干货」什么Linux是邮件服务器?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 「干货」编程语言十大经典算法,你知道几个
- 下一篇: Pygame实战项目:用300行代码写出