浅析邮件服务器原理
·
上面的架构图中包含两组邮件系统、两个客户端和一个DNS服务器,其中的邮件系统是企业中比较经典的架构形式,下面我将依据此图来简述邮件服务器的工作流程。 名词解释: MUA 接收邮件所使用的邮件客户端,使用IMAP或POP3协议与服务器通信,常见的有:outlook、foxmail; MTA 通过SMTP协议发送、转发邮件,常见的有:sendmail、postfix、qmail; MDA 将MTA接收到的邮件保存到磁盘或指定地方,通常会进行垃圾邮件及病毒扫描; MRA 负责实现IMAP与POP3协议,与MUA进行交互; SMTP 传输发送邮件所使用的标准协议; IMAP 接收邮件使用的标准协议之一; POP3 接收邮件使用的标准协议之一; MailBox 用户邮箱; cyrus-SASL及courier-authlib 提供用户认证相关的支持。 SQL 数据库,用于存储用户身份信息 前面的架构图中,MUA想发送邮件,就要将邮件通过SMTP协议送到MTA上,MTA通常会要求用户认证身份(也可不认证),认证通常使用SASL,认证源可以是像上面的架构图中那样使用SQL数据库也可以使用其他方式。MTA收到邮件后会检查邮件目的地址的邮件域,此时会产生两种情况。情况一,目的邮件域是本服务器:如果发现是本服务器的邮件域则将邮件送到MDA,由MDA将其投递到用户的邮箱(MailBox)中。最后用户在MUA上使用POP3/IMAP协议链接MRA,MRA通常也会要求用户认证身份,其认证源同MTA一样可以是SQL也可以是其他方式,若认证通过,则允许MUA读取邮件信息。情况二,目的邮件域非本服务器:若是邮件域是其他邮件服务器的,则MTA会发送UDP报文向DNS服务器查询邮件域对应的邮件主机,并最终解析出其IP地址,随后MTA会查询本服务器的转发控制策略,若允许转发,则将邮件转发到该域对应的服务器上,最终会重复情况一中MTA收到邮件后的处理方式。