首页 > 代码库 > 基础邮件原理(MUA,MTA,MDA)
基础邮件原理(MUA,MTA,MDA)
电子邮件基本概念:
MUA(Mail User Agent)接收邮件所使用的邮件客户端,使用IMAP或POP3协议与服务器通信;
MTA(Mail Transfer Agent) 通过SMTP协议发送、转发邮件;
MDA(Mail Deliver Agent)将MTA接收到的邮件保存到磁盘或指定地方,通常会进行垃圾邮件及病毒扫描;
MRA(Mail Receive Agent)负责实现IMAP与POP3协议,与MUA进行交互;
SMTP(Simple Mail Transfer Protocol)传输发送邮件所使用的标准协议;
IMAP(Internet Message Access Protocol)接收邮件使用的标准协议之一;
POP3(Post Office Protocol 3) 接收邮件使用的标准协议之一。
邮件服务器基本都有MTA,MDA,MRA 组成。
常用的MUA有:outlook、thunderbird、Mac Mail、mutt;
常用的MTA服务有:sendmail、postfix;
常用的MDA有:procmail、dropmail;
常用的MRA有:dovecot。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
架构图中还有个DNS (域名解析服务),架构中存在DNS原因是,邮件格式,通常情况下有两种:
1、abc@xyz.com(用户名@域名),2abc@mail.xyz.com(用户名@主机名)而1是最创建的格式,2是最为确切的位置。域并不代表一个特定的主机,所以还不知道邮件服务器的主机名是那个,而在dns中可以记录一个域的邮件服务器地址(称为mx记录)。所以在发送邮件时候还要通过dns去查找该域下的邮件服务器的地址。
我们还是先跟随一个典型的从发送邮件到接收邮件的过程,借此来观察Dovecot起到了什么作用。
开始,某个人用邮件用户代理(MUA)创建了一封电子邮件,典型的MUA包括Mozilla Thunderbird和Microsoft Outlook Express。无论是用哪种MUA,邮件创建后被送到了该用户的邮件传输代理(MTA)——传送过程使用的是SMTP协议。然后MTA检查该邮件的收信人(在这里我们假设是您),向DNS服务器查询接收方MTA对应的域名,然后将邮件发送至接收方MTA——使用的仍然是SMTP协议。这时,邮件已经从远程的用户工作站发送到了他的ISP的邮件服务器,并且转发到了您的域中。接下来会发生什么呢?
考虑到不同的网络配置,邮件在传输过程中很有可能被转移到另外一个MTA,但是最终会有某个MTA接管这封邮件,并且负责投递。这时,MTA会将邮件传递给某个邮件投递代理(MDA),MDA的主要作用就是将邮件保存到本地磁盘,有些MDA也可以完成其他功能,比如邮件过滤或将邮件直接投递到子文件夹。需要注意的是,完成将邮件存放在服务器上这个功能的是MDA。
现在,您该查收邮件了。运行MUA,您可以使用IMAP协议或POP3协议来向邮件服务器查询您的邮件。邮件服务器会先确认您的身份,然后从邮件存储区检索邮件列表,并将列表返回给MUA。现在您就可以阅读邮件了。现在我们就可以解释第一段了:将邮件投递给您的邮件服务器就是Dovecot。
作为IMAP和POP3服务器,Dovecot为邮件用户代理(MUA)提供了一种访问服务器上存储的邮件的方法。但是,Dovecot并不负责从其他邮件服务器接收邮件。Dovecot只是将已经存储在邮件服务器上的邮件通过MUA显示出来。
IMAP和POP3是用于连接MUA与邮件存储服务器的两种常见的协议。POP3通常用于网络连接较慢的用户连接至邮件服务器。POP3的一条基本原则是,MUA从服务器上下载邮件并保存在本地磁盘上,然后将服务器上的邮件删除。IMAP通常用于局域网(LAN)或网络连接较快的用户,使用 IMAP的目的就是只在每次有未读消息时才连接服务器(而不是使用类似于MUA的缓存)。Dovecot为使用IMAP协议的连接做了很多优化,这样 IMAP客户端在连接Dovecot服务器时会表现出更好的性能。
Dovecot并不关心邮件的接收、投递和存储,这些功能都是由MTA(比如Postfix)提供的。MTA决定邮件是如何存放的,以及存放在哪里,Dovecot必须根据MTA的配置来进行相应的配置。而且很明显的是,在安装Dovecot之前,必须保证MTA正常工作。
在*NIX环境下主要有两种邮件存储格式——mbox和Maildir。Mbox将大量的邮件——有时可以达到几千封——存放在一个文件中。 Maildir则是将每封邮件都存放在单独的文件当中。可能由于文件系统较老等原因,您会选择使用mbox,但对于大多数的全新安装,Maildir提供了更强壮的存储实现和文件之间的相对平等。当然,还有一些其他的存储格式,比如dbmail,并不被Dovecot所支持(至少现在不支持)。
还需要重复一遍的是:Dovecot并不负责邮件的投递或存储,这两方面出现了问题应该考虑MTA或MDA是否正常工作。如果没有,知道该怎么办了吧?
Dovecot的主要配置包括邮件存储类型,邮件存储位置,用户列表和密码列表。Dovecot以支持多种用户名/密码格式,包括*NIX密码、shadow、PAM、LDAP、SQL和vpopmail。通常,您应该选择一种邮件服务全局都可以接受的用户名/密码格式,其中包括您的MTA、 MDA和Dovecot。
基础邮件原理(MUA,MTA,MDA)