mx

Mail Exchanger(缩写MX)属于DNS的一种记录类型,用来指定邮件服务器(MTA)地址,MX记录格式说明参见 RFC 1035

格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
                                 1  1  1  1  1  1 
      0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5 
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ ++++++++++++++++++++++++++++++++++++
    |                                               | RDATA-HEADER
    /                                               / 
    /                      NAME                     / 域名:变长,zone名称
    |                                               | 
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
    |                      TYPE                     | 请求类型:2字节,soa
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
    |                     CLASS                     | 网络类型:2字节,IN(for internet)
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
    |                      TTL                      | 缓存时长:4字节,3600
    |                                               | 0表示不缓存
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ ++++++++++++++++++++++++++++++++++++
    |                                               | RDATA
    |                   RDLENGTH                    | 长度:2字节,rdata部分长度
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
    |                                               | 
    |                   PREFERENCE                  | 优先级:2字节,数字越小优先级越高
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
    /                                               / 
    /                    EXCHANGE                   / 域名:变长,邮件服务器地址
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +++++++++++++++++++++++++++++++++++++

例子

1
2
3
#zone_name       ttl   class type preference host 
example.com.     1936  IN    MX   10         onemail.example.com.
example.com.     1936  IN    MX   10         twomail.example.com.

dns与email

dns_mx.png

  1. MUA(Mail User Agent)邮件客户端;
    功能: 发送、接收、编辑邮件,从配置获取smtp/pop3/imap服务器域名,通过dns协议获取对应的ip地址,并使用smtp协议将邮件发送到mta或者使用pop3/imap从mra接收邮件;
    常用软件:mailx/outlook/thunderbird;
  2. MTA(Mail Transfer Agent)邮件转发服务器;
    功能:判断目的邮箱:
    1)自己的邮箱,则转发mda;
    2)非自己的邮箱,通过dns获取目的邮箱对应的mta的mx记录及mx对应的a记录,转发到优先级最高的mta,失败则尝试优先级次之的mta;
    常用软件:sendmail/postfix;
  3. MDA(Mail Delivery Agent)邮件交付服务器;
    功能: 将mta转发过来的邮件,经过垃圾邮件处理及病毒扫描后,保存到本地磁盘或其他地方;
    常用软件:procmail/dropmail;
  4. MRA(Mail Receive Agent)邮件接收服务器;
    功能: 负责接收mua的收邮件请求并将存储在mda中的邮件转发给mua,实现pop3及imap协议;
    常用软件:dovecot;

参考文档

sendmai - 第二十一章 - DNS and sendmail
鸟哥的Linux私房菜 - 第二十二章 - 邮件伺服器:Postfix