大致了解了DNS与邮件服务器之间的关系后,接下来我们介绍邮件到底是如何传送到目的邮件主机的。下面我们分成“寄信”与“收信”两个主要的邮件服务器使用方式进行介绍。先说明关于“寄信”的部分。通常我们都是使用桌面计算机来寄信,如果你以Netscape或者Kmail或者OutLook Express来寄信时,信到底是怎么送出去的?可以参考图20-1。
先说明什么是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。不要搞错了!
用户收自己的信:用户可以将放置在邮件主机的信件收到自己的个人计算机上。
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文件中,用户可以通过程序将这个文件里的信件数据读取出来。
发信人与发信网站:必须有这个信息。发信网站就是下面Step 2接收信件的那个MTA;
收信人与收信网站:以account@e-mail.server的形式给出,其中,account就是该e-mail.server里的账号。