先说明什么是MUA,MTA与MDA,然后说明信件的传送流程。
MUA(Mail User Agent):顾名思义,MUA就是“邮件用户代理”。邮件需要代理,这是由于通常Client端的计算机无法直接寄信(不然为什么要邮件主机?),所以,需要通过MUA帮我们传递信件,不论是送信还是收信,Client端用户都需要通过各个操作系统提供的MUA才能够使用邮件系统。举个例子,Windows里的OutLook Express、Netscape里的mail功能与KDE里的Kmail都是MUA。MUA主要的功能就是接收邮件主机的电子邮件,并提供用户浏览与编写邮件的功能。MTA(Mail Transfer Agent):MUA是用在Client端的软件,而MTA是用在邮件主机上的软件,它也是主要的邮件服务器。MTA就是“邮件传送代理”的意思,既然是“传送代理”,那么用户寄信与收信时,都找MTA就对了!因为它负责帮用户传送。基本上,MTA的功能如下。
接收外部主机寄来的信件:既然是邮件主机,接收信件自然是主要功能,只要这个信件里有MTA内部账号,这封信就会被MTA收下来;
帮用户发(寄出)信:既然可以收信,自然也可以发信,只要用户具有合法的使用MTA的权力,就可以利用这台MTA主机把信传送出去!不过要注意,MTA会将信件送给目的地的MTA而不是目的地的MUA。不要搞错了!
曾经有个朋友跟我说,要我传数据给他,而因为他要接收我的信件,所以他的计算机(指的是Windows那个Client端计算机)得一直开着,真是不方便!听到这句话时,我吓了一跳——这个概念是不对的,因为用户使用的是MUA,而信件仅会送达MTA主机上,收、发信件时,都需要通过MTA帮忙处理,所以,用户在使用邮件编辑器“MUA”将数据编辑完毕之后,按下送出,并且成功送到MTA之后,接下来的事情就是MTA的工作了,跟用户的Client端计算机没有关系。
用户收自己的信:用户可以将放置在邮件主机的信件收到自己的个人计算机上。
MDA(Mail Delivery Agent):“邮件投递代理”主要的功能就是将MTA接收的信件依照信件的流向(送到哪里)将该信件放置到本机账户下的邮件文件中(收件箱),或者再经由MTA将信件送到下个MTA。如果信件的流向是到本机,这个邮件代理的功能就不只是将由MTA传来的邮件放置到每个用户的收件箱,它还可以具有邮件过滤(filtering)与其他相关功能。这很了不起,举两个例子:
如果你知道某个广告信件的主题都是固定的,例如“AV情色XXX”,你想将这种信件直接丢进垃圾箱,可以通过MDA邮件分析功能,将信件丢弃。
如果有一天你要出差,可能一个星期碰不到电子邮件,但是你又不想让一些朋友认为你在耍大牌不回信,这时你可以利用MDA的功能,让邮件主机在别人给你发信时自动回复一封,让寄件人知道你在忙碌中。这样的功能是否很不错?不止这些,其他功能后面会再介绍。
Mailbox:“收件箱”,说穿了就是主机上一个目录下某个人专用来接收信件的文件!举个例子,系统管理员root在默认情况下会有个信箱,默认的文件就是/var/spool/mail/root文件(每个账号都会有一个自己的信箱),然后,当MTA收到root的信时,就会将该信件存到/var/spool/mail/root文件中,用户可以通过程序将这个文件里的信件数据读取出来。 了解了MUA,MTA与MDA之后,下面说说如何将信寄出去。可以分为几个步骤。
Step 1 用户利用MUA寄信到MTA。通常我们使用MUA(例如Outlook express)写信时,要写明几个项:
发信人与发信网站:必须有这个信息。发信网站就是下面Step 2接收信件的那个MTA;
收信人与收信网站:以er的形式给出,其中,account就是该e-mail.server里的账号。 在图20-1左上角的那台机器上,也就是“本地客户端使用的电脑”,利用MUA功能(如Outlook express)写好信之后,按下MUA的“发送”按钮,MUA就会依据你所定义的主机地址将信发送到MTA上。
Step 2 MTA收到信件,交由MDA发送到该账号的MailBox中。如果在Step 1收到的信件中,那个e-mail.server就是MTA自己,此时MTA会将该信件交由MDA处理,将信件放置在收信者的信箱中。
Step 3 MTA将信再转送出去。如果由Step 1发来的信件的收件人并不是MTA的内部账号,那么该信将被再次转送出去!Step 1及Step 3的动作,我们也称为Relay(邮件转发)功能。
Step 4 远程MTA收到本地MTA发出的邮件。远程MTA会收到我们这台MTA的信件,并将该信件交给它的MDA处理(Step 5),此时,信件会存放在远程MTA上,等待用户登录读取或下载。
远程用户使用的计算机直接连接到它的MTA,向MTA请求查看自己的收件箱是否有信件,而MTA通过MDA去检查,如果有信件,就会将它传送给用户的MUA,同时,根据MUA的不同设置,MTA会选择将该信件从收件箱清除或继续保留!若继续保留,那么下次用户再次接收信件时,保留的信件会再次被下载,因此,通常用户MUA都是默认删除MTA的收件箱中的内容。
转自:http://hi.baidu.com/flyane/item/6386f2f05bab43c2a835a218