分类: 系统运维
2009-06-18 09:08:57
工作原理
现在的邮件系统,从结构上分成3部分:MUA,MTA,MDA;如下图所示
邮件发送部分
用户写好邮件后,通过MUA按照SMTP协议把邮件发送到本地邮局(MTA),由本地邮局(MTA)来把此邮件发送到目的地。MUA按照以下的方法找到本地邮局(MTA)的IP地址的。MUA读取邮件的 from部分。比如 from :vpxiroot@gmail.com,那么本地邮局(MTA)的主机名称就是:gmail.com.然后MUA通过DNS服务器得到gmail.com DNS信息,其中gmail.com 的DNS信息中的MX记录所记录的信息就是本地邮局所在的IP地址。
现在的MUA有很多种,比如基于图形应用程序的:OutLook ,Foxmail;基于终端字符节界面的程序:mail;基于web界面的:SqWebMail、OpenWebMail..;
当然邮件可以从其他MTA通过SMTP(ESMTP)发送过来。或者邮件可以从MTA本机登录的用户写好后,不需要通过SMTP直接发送。
邮件转发部分
当MTA接收到邮件后,它判断接收到的邮件的目的地址(TO:部分)是否是本身,还是其他邮局(其他的MTA)。如果是其他的MTA,按照SMTP,通过存储转发的方式,在适当的时候把这封邮件发送到目的MTA(得到目的MTA的IP地址和上面得到本地MTA的IP地址过程是一样的).不管是目的地址是本身还是转发到其他的MTA,MTA都是通过MDA来发送邮件的,如果目的地址是本身,它就通过LOCAL MDA把这封邮件发送到本地的邮件仓库存放(等待用户来取)。存放到邮件仓库的邮件格式一般包括两种,一种是mbox,一种是maildir,mbox就是同一个用户的所有的email都是放在一个文件中。而maildir是同一个用户的所有email是按照文件形势分给存放。显然采用 maildir的格式应该更先进。如果要把邮件转发到其他的MTA ,那么它就通过STMP MDA把邮件按照SMTP协议发送到目的MTA.
现在的MTA有很多种,计较著名的有:SendMail,qmail,postfix…; SendMail是最早出来的,结构不适合现在的情况,配置也复杂,特别是安全性能低。Qmail安全性高,配置简单,速度快,性能高,因此现在基本一般都使用qmail;postfix的情况介于两者之间。
邮件接收部分
当用户要接收邮件的时候,他(她)是通过MUA登陆到用户所注册的某个邮局(MTA)把属于自己的的邮件按照MAA的方法提取出来。(当然这些邮件已经按照to对应的地址分类存放在MTA上的邮件仓库,用户提取就是把本人的邮件和其分类进行比较,)
现在的MAA有很多种,有pop3、imap等等,就是提取邮件协议。Pop3和imap之间的最大的不同是:pop3要把所有的邮件接收到本地后才能查看。而imap可以不用下载邮件就可以看邮件。因此imap比pop3要先进。