Fidcer'Blog

[读书笔记] mail理论

字数统计: 642阅读时长: 2 min
2019/02/21 Share
很久之前的笔记整理下

MX代表的是MaileXchange,当一封邮件要发送出去的时候,邮件主机会先分析那封信的目标的DNS 先取得MX标志(注意 MX标志可能会有多部主机)然后以最优先MX主机为准将信发送出去

我们熟悉的outlook、foxmail等都是用来收信和发信的,称之为MUA:mail user agent,邮件用户代理

MUA并非直接将邮件发送至收件人手中,而是通过MTA:Mail Transfer Agent,邮件传输代理代传递,sendmail和postfix就是扮演MTA的角色

一封邮件的流程是:
发件人:

MTA --> 若干个MTA -> MTA -> MDA <-- 收取 --mua:收件人```< span>
1
2

MUA到MTA,以及MTA到MTA之间使用的协议就是SMTP协议,而收邮件时,MUA到MDA之间使用的协议是最常用的POP3或IMAP。

MUA: 用户代理端,即用户使用的写信、收信客户端软件
MTA:邮件传送端,即常说的邮件服务器,用于转发、收取用户邮件
MDA:邮件代理端,相当于MUA和MTA的中间人,可用于过滤垃圾邮件
POP:邮局协议,用于MUA连接服务器收取用户邮件,通讯端口110
IMOP:互联网应用协议,功能较多POP多,通信端口143
SMTP:简单邮件传送协议,MUA连接MTA或MTA连接MTA发送邮件使用此协议,通讯端口25

![mail-flow.gif][1]

1)发信端于收信端两台主机间会经过一个握手(ehlo)的阶段,此时发信端会被记录为发信来源
(而不是mail from)。通过握手后就可以进行邮件标题(header)的传送
2)此时收信端主机会分析标题的信息,若邮件的“mail to:主机名”为收信端主机,且该名称符合mydestination的设置,则该邮件会开始被接受到队列,并进一步送到mailbox当中;若不符合mydestination
的设置,则终止连接且不会进行邮件内容的传送
3)若“mail to:主机名“不是收信端本身,则开始进行中继转发(relay)的分析
4)转发过程首先分析该邮件的来源是否符合信任的客户端
5)分析邮件来源或目标是否符合relay_domains的设置,若符合则邮件将接受至队列,并等待MDA将邮件再转发出去
6)若这封邮件的标题数据都不符合上述的规范,则终止连接,并不会接受邮件的内容数据。


  [1]: http://118.126.66.150/52sec/08/3640427257.gif
CATALOG