您的位置:首页 > 大数据 > 人工智能

MailServer搭建——邮件收发流程

2015-02-12 20:10 309 查看
本文主要参考《鸟哥的Linux私房菜——服务器篇》
原文网址:http://vbird.dic.ksu.edu.tw/linux_server/0380mail_1.php

        下面是寄出一封邮件的简单示意图,基本上,信件的流程是本地端用户(MUA)将信件从本地的邮件服务器(MTA)寄出,邮件寄存到目标的邮件服务器(MTA),之后目标邮件服务器将信件转存到邮件主机的信箱(Mailbox)。最后,由目标用户(MUA)通过访问邮件主机,获取邮件。注意,本图只是绘制了邮件存放到目标用户邮件服务器的情形,并未涉及目标用户读取邮件的情况。



        这里,有一些专有名词需要解释,之后将涉及邮件服务器搭建需要的具体内容。具体来说,用到的一些专有名词有:

MUA(Mail User Agent)
        邮件客服端,具体来说用户发送邮件有这么几种方式:其一,直接采用远程连接(telnet)的方式登录邮件服务器(MTA)发送邮件(这种方式不算是MUA);其二,采用邮件客户端软件(如,windows的Outlook)进行发送;其三,有些Web邮箱的方式登录发送邮件。还有其它方式!

MTA(Mail Transfer Agent)
        上面来看,MUA用于帮助用户将邮件传送到邮件主机上;而实现将邮件发送出去,并且接收属于用户的邮件功能的就是MTA。MTA的功能主要是,接收和转发邮件。通常提到的 Mail Server 主要指的是 MTA,达成MTA的 SMTP功能的主要软件包括 sendmail 和 postfix 。因此,以postfix+mysql+dovecot+SpamAssasin构成的邮件服务器中,实际上实现接收邮件功能的便是 postfix
软件。

MDA(Mail Delivery Agent)
        一般是挂靠在MTA下的一个程序,主要功能是分析信件表头的内容或者数据,来决定邮件的去向。MTA的邮件转发功能是由 MDA 完成。此外,MDA还有分析与过滤邮件的功能。

MailBox
        电子邮件信箱,某个账号的信件接收档案。Linux系统默认的信箱放在 /var/spool/mail/使用者账号中。

        邮件发送的流程如下:

取得MTA权限
在MUA上完成信件编辑之后,传递至MTA上
若信件目标是本地MTA的账号,则通过 MDA 将这封信传递到本地的MailBox 中;若是为其它的MTA,则开始转递(Relay)的流程
对服务器接收邮件
整个过程中,邮件从MTA发送出去,最终被接收到MTA上,但是并未达到目标用户的MUA上,用户无法直接获取邮件。因此,这里尚缺少一个用户从 MTA 接收邮件的过程。

        
        用户从 MTA 接收邮件的过程如下图所示,在此过程中,目标用户是通过MRA提供的POP协议(Post Office Protocol)接收自己的邮件,也可以透过IMAP(Internet Message Access Protocol)将自己新建保留在主机上面,并进一步建立邮件数据夹等工作。即,当目标用户可无端接收信件的时候,采用的是MRA的POP3、IMAP等协议,并非MTA的
SMTP协议。Dovecot是一个常用的开源MRA软件。



采用POP3协议接收邮件的过程:

MUA透过POP3连接到MRA(端口 110),输入账号和密码获取正确的认证与授权;
MRA确认用户权限后,前往用户邮箱获取用户邮件并转发给用户的MUA软件上;
当所有的信件传输完毕后,用户的Mailbox内的数据会被删除;
由于POP3协议会预设将接收到的信件删除,因此用到 IMAP(Internet Message Access Protocol)协议将mailbox的数据转存到主机上的用户目录

        由此,架设一个mail服务器,至少需要启动SMTP和POP3两个协议,而且这两个协议的程序并不相同,因此在配置上需要小心。

        
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息