郵件伺服器基本原理講解

來源:互聯網
上載者:User

標籤:郵件伺服器基本原理   mua   mda   mta   mra  

郵件伺服器基本原理講解

        我想很多的人都發過電子郵件,只要我們有一個郵件用戶端,然後填上收件者地址,發信人地址,發信的內容等等就可以發送一封電子郵件了。當然我們現實生活中感覺到的電子郵件的傳輸可能很簡單,但是在其背後的實現機制卻非常的複雜。而且,由於早期技術的限制,要實現一個完整的郵件系統,需要的伺服器可能需要達到多種,因此,這種方式建立的郵件伺服器是非常繁瑣且不易維護的。後來人們為了方便,於是九江許多的功能整合在某一個軟體上,這樣只需要安裝這樣一個軟體,就可以實現許多郵件服務功能。這樣維護起來也方便多了。

 

在講郵件伺服器之前,我們先介紹幾種伺服器常用的組件概念:

MUA:Mail  User  Agent,郵件使用者代理,它主要的功能就是接受郵件伺服器上的電子郵件,以及提供使用者瀏覽和編寫郵件的功能。通俗的說就是一個郵件用戶端。

            常見的MUA軟體有:

                    Outlook Express, Outlook
                     Foxmail
                     Thunderbird
                     Evolution
                     mutt(文本介面)

 

MDA:Mail  Delivery Agent,郵件投遞代理,它主要的功能就是分析MTA所收到的信件的表頭和內容等資料,來決定這封郵件的去向。如果MTA所收到的這封信目標是自己,那麼就會將這封信轉到使用者的郵箱中去;如果不是,那麼就中繼(轉遞)出去。

                常見的MDA軟體有:

                            procmail

                            maildrop

 

MTA:Mail  Transfer  Agent,郵件傳輸代理程式,它主要的作用是收取信件,接受郵件時使用的協議是SMTP(Simple  Mail  Transfer Protocol,簡易郵件傳輸通訊協定),監聽的連接埠號碼是25。當然我們一般所說的Mail  Server就是指的是MTA,其實MTA僅僅指的是SMTP協議而已。

                常見的提供MTA功能的軟體有:

                       比較老牌的sendmail

                       後起之秀postfix:這個軟體採用模組化設計,且安全,跟sendmail相容,且比他的效率高

                        qmail

                        Exchange(windows,非同步訊息協作平台)

                 當然我們後面所使用到的MTA軟體就是postfix了。

 

MRA:Mail Retrieval Agent,郵件檢索代理,使用者可以通過(POP3或者IMAP4)協議來收下自己的信件。當然POP3和IMAP4的收信方式是不同的,在這裡我介紹一下他們兩個的收信方式:

                POP3的收信方式:

                        1、MUA(郵件用戶端軟體)透過POP3(Post Office Procotol  Version 3,郵政服務合約)串連到MRA的110連接埠,並且MUA需要提供帳號和密碼來取得正確的授權。這個授權是由POP3協議到資料庫中來檢索帳號和密碼是否正確來取得授權的。因此MRA還需要和資料庫結合一起來工作,這個在後續再講到。

                        2、MRA確認帳號和密碼沒有問題後,會前往使用者的郵箱取得使用者的郵件,並傳遞給MUA軟體。

                        3、當所有的信件傳送完畢後,使用者郵箱(mailbox)內的資料會被清空

                

                IMAP4的收信方式:

                        首先也需要通過帳號和密碼來取得授權才可以取得使用者郵箱(mailbox)內的郵件,但是他不僅將取得的郵件返回給MUA,並且將郵件儲存在~/使用者帳號/目錄下。這樣一來,使用者就可以永久查看郵件了。

                因此,建立一個完整的郵件伺服器只要需要SMTP和POP3洗協議才行。    

                常見的MRA有:

                            cyrus-imap

                            dovecot

 

接下來我們介紹一個完整的郵件伺服器是如何工作的:

               1、首先使用者利用MUA軟體寫好一封郵件,利用SMTP協議將其傳到本地SMTP伺服器(記住,這裡是本地SMTP伺服器,而不是目的端SMTP伺服器,在這裡我們將SMTP伺服器簡稱SMTPD)

                2、當MTA收到郵件後,如果該郵件的目的端是本地的話,那麼MDA會將該郵件存放在使用者的郵箱裡(mailbox);如果不是本地的話,需要調用smtp用戶端(這裡簡稱smtp),MDA會將其轉寄給下一個MTA,如果是這種情況不加任何措施的話,那麼所有的人只要串連到本地,都可以發送郵件了,且MDA都會為其轉寄給下一個MTA,我們將這種傳遞方式叫做開放式中繼(open  relay)。當然這種方式是不安全的,如果有人發送一些不健康的郵件或者不法郵件的話,那麼導致以下幾種不好的影響:

                (1)、佔用MTA網路頻寬

                (2)、被互連網定義為黑名單,因此,許多正常的郵件無法發出。

                (3)、IP可能會被上級電訊廠商給封鎖掉等等不良因素

                  因此為了安全起見,需要使用者在使用MUA發送郵件之前,需要提供帳號和密碼取得授權,才可以發送郵件,這樣MTA就只為這些經過授權的帳號提供中繼,就可以正常轉寄郵件了。當然驗證帳號和授權的功能需要用到SASL( Simple Authintication Secure Layer, 簡單認證安全層)機制,SASL就是用來驗證帳號是否具有relay服務。當然它也是通過在資料庫上面檢索帳號和密碼是否正確來驗證的。因此,它也需要和資料庫一起結合使用。

                    3、本地SMTP伺服器調用smtp用戶端(smtp)與下一個smtp伺服器建立tcp串連,然後目標smtp伺服器收到郵件後,MDA會分析該郵件的表頭和內容,決定這封信的去向。如果目標是本地,則將其轉寄到使用者的郵箱下;如果不是,繼續向下一個MTA轉寄(之後的過程和這是一樣的)。

                    4、用戶端收取郵件,當然也需要通過帳號和密碼取得授權,通過與MRA建立串連,這裡就使用pop3。pop3會到資料庫檢索帳號和密碼是否正確,如果帳號和密碼沒有問題,就到使用者的郵箱下取得郵件,返回給pop3伺服器,在由pop3伺服器返回給用戶端。

                        

           

 

 

本文出自 “linux學習之路” 部落格,請務必保留此出處http://xslwahaha.blog.51cto.com/4738972/1560462

郵件伺服器基本原理講解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.