本文简述:
主要内容是《张孝祥Java邮件开发详解》第一章内容提要 ,pdf下载链接:

1.电子邮件基础

  • 邮件服务器:
    ①Internet上的邮局,实现接收用户寄件、投递、接收用户收件并存储邮箱【用户邮箱】、提供用户读取邮件功能。


    ②从功能上,有两种类型:SMTP服务器和POP3/IMAP服务器。
  • java 实现smtp邮件服务器 java邮件服务器开发_电子邮件基础


  • 邮件客户端软件:
        负责与邮件服务器通信,帮助用户把邮件发送给SMTP服务器和从POP3/IMAP服务器读取用户邮件。
         集邮件撰写、发送和接收功能于一体。
  • 电子邮箱:
        E-mail其实就是用户在邮件服务器上申请的账户。
  • 邮件传输协议:
        邮件的传递需要遵循邮件传输协议。
      *SMTP协议(简单邮件传输协议):定义了邮件客户端软件与SMTP服务器之间,两台SMTP服务器之间的通信规则。
      *POP3协议(邮局协议):定义了邮件客户端软件与POP3服务器的通信规则。
      *IMAP协议(Internet消息访问协议):对POP3协议的扩展,定义了邮件客户端软件与邮件服务器的通信规则。
  • DNS与主机名:
    ①DNS(域名解析系统):将计算机IP映射成域名。
    ②计算机的IP所映射成的名称即为主机名。
    ③DNS服务器保存有主机名与IP地址映射的专用计算机,对外提供查询服务。
    ④正向解析与方向解析:从主机名–>解析到ip 正向解析, ip–>主机名 反向解析
    注意:虽然可以使用主机名去访问某台计算机,但其实底层最终计算机间的通信都得依靠IP地址。

-域名管理:
①DNS的域类似于人类社会的组织关系。一个域表示一组逻辑相关的计算机组合。
②DNS域管理规则:
(1)每个域都有一台DNS服务器进行管理(帮派花名册),你的计算机想加入这个帮派,必须经过域管理员(帮主)同意,再在DNS服务器上注册 该计算机IP地址与主机名映射关系。
(2)一个域的DNS服务器只负责管理这个域中的映射关系,不负责子域中的映射;
(3)子域必须在父域的DNS服务器注册子域的映射关系【父域不负责具体的子域中映射解析,但需要知道子域的成员,中央需要知道地方的结构,但不具体负责地方的工作】
(4)在顶级域名之上其实还有一个根域名,根域名用点(.)表示。例如”www.it1315.org”其实是”www.it315.org.”的缩写。后者最后多了一个根域名(.)。我们平常使用的不带点是简写。”www.it315.org.”带根域名的才是完整的域名,称为完全限定域名。

  • 域名解析原理:
  • java 实现smtp邮件服务器 java邮件服务器开发_DNS_02

  • 大概就是问一个老大,老大再让你去问 他手下面一个组织的老大。
  • MX记录
    在DNS服务器上除了可以建立主机名与IP地址的映射外,还可以简历其他多种映射。域名与其SMTP服务器的映射关系称为MX记录。
    邮件地址后缀部分表示的通常都是一个域名,而不是接收邮件的服务器的主机名。
    接收和处理某个域的电子邮箱的SMTP服务器即为该域的SMTP服务器,外界发送给某个域的电子邮件实际上是发送给该域的SMTP服务器。
    MX即是域名与其SMTP服务器的映射关系。
    个人理解:电子邮件在不同的域沟通起来,就像邮局按地域划分。MX就是这个区域里面的邮局映射。电子邮件发送到某个域,查询到域邮局地址,再投递到域里面的邮局。
    2. 电子邮件的工作原理:
  • java 实现smtp邮件服务器 java邮件服务器开发_电子邮件基础_03

  • 图中实现部分表示一个发送流程,虚线部分为另一个发送流程。
  • 流程步骤解析
    ① lisi@sina.com的邮件客户端程序(图中假设为Outlook )与sina的SMTP服务器简历网络连接登陆,把邮件发给SMTP服务器;
    ②sina的SMT服务器收到后,
    判断@后面的域名和该SMTP服务器邮局所在的域是否相同?
    如果是一个域,直接把邮件存储到收件人的邮箱;
    如果不是,则SMTP向DNS服务器查询收件人@后跟的域名后缀(sohu.com)表示的域名MX记录,找到sohu.com的域邮局SMTP,把邮件传递过去。
    ③sohu的SMTP收到sina的SMTP发来的邮件,
    判断@后面的域名和该SMTP服务器邮局所在的域是否相同?
    如果是一个域,直接把邮件存储到收件人的邮箱;
    如果不是,则有可能继续 转发,有可能丢弃。
    ④拥有wangwu@sohu.com账户的用户通过邮件客户端与sohu的POP3/IMAP服务器建立连接,就可以查看新邮件。