• 电子邮件


    电子邮件

    一、.概述

    • 电子邮件(e-mail)是因特网上使用得最多的和最受用户欢迎的一种应用。
    • 电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中的收件人邮箱中,收件人可随时上网到自己使用的邮件服务器进行读取。

    1.1.电子邮件使用的协议

    • 发送邮件的协议:SMTP
    • 读取邮件的协议:POP3IMAP
    • MIME 在其邮件首部中说明了邮件的数据类型(如文本、声音、图像、视像等),使用 MIME 可在邮件中同时传送多种类型的数据。

    1.2.发送电子邮件的过程

    简略图例为:

    image-20200202154118053

    • 如图用户x在qq服务器上注册了邮箱:x@qq.com;用户y在163服务器上注册了邮箱:y@163.com;这样qq服务器和163服务器就会分别给用户x和y分配一块空间,称为邮局,地址为他们的邮箱地址。邮局分为收件箱与发件箱。
    • 用户需要在计算机上安装邮件服务器的客户端,比如:Fox mail。用户x使用Fox mail通过身份验证后可登录到个人的邮箱:x@qq.com,并可以下载收件箱中的邮件。
    • 当用户x想发邮件给用户y时,在Fox mail中新建邮件,邮件的目标地址为:y@163.com,并放入其发件箱中。随后Fox mail把发件箱中的邮件通过SMTP协议发送到邮局的收件箱中。邮局:x@qq.com通过DNS服务器查找邮件交换机录找出邮局:y@163.com的IP地址,并通过发件箱使用SMTP协议发送到邮局:y@163.com的收件箱中。最后,用户y使用Fox mail通过身份验证后,使用POP3或IMAP协议从邮局:y@163.com的收件箱中下载邮件。由此用户y收到用户x发出的邮件。

    详细图例为:

    image-20200202160400202

    • 用户代理 UA(User Agent) 就是用户与电子邮件系统的接口,是电子邮件客户端软件(如Fox mail)。
    • 邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。
    • 邮件服务器按照客户服务器方式工作。邮件服务器需要使用发送和读取两个不同的协议。
    • 一个邮件服务器收信时可作为服务器,发信时可作为客户。

    几个重要步骤

    1.发件人调用 PC 机中的用户代理撰写和编辑要发送的邮件。

    2.发件人的用户代理把邮件用 SMTP 协议发给发送方邮件服务器,

    3.SMTP 服务器把邮件临时存放在邮件缓存队列中,等待发送。

    4.发送方邮件服务器通过DNS服务器找到接收方邮件服务器地址后,其 SMTP 客户与接收方邮件服务器的 SMTP 服务器建立 TCP 连接,然后就把邮件缓存队列中的邮件依次发送出去。

    5.运行在接收方邮件服务器中的SMTP服务器进 程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取。

    6.收件人在打算收信时,就运行 PC 机中的用户代理,使用 POP3(或 IMAP)协议读取发送给自己的邮件。

    注意:POP3 服务器和 POP3 客户之间的通信是由 POP3 客户发起的。

    1.3.电子邮件的组成

    • 电子邮件由信封(envelope)和内容(content)两部分组成。
    • 在邮件的信封上,最重要的就是收件人的地址。

    1.4.电子邮件地址的格式

    • TCP/IP 体系的电子邮件系统规定电子邮件地址的格式如下:

      **收件人邮箱名@邮箱所在主机的域名 **

    • 符号“@”读作“at”,表示“在”的意思。例如:电子邮件地址 Tom@qq.com 。"Tom"表示用户名,在该域名范围内是唯一的;qq.com"表示邮箱所在的主机的域名,必须是全世界唯一的。


    二、邮件传送协议 SMTP

    • SMTP 所规定的就是在两个相互通信的 SMTP 进程之间应如何交换信息。
    • 由于 SMTP 使用客户服务器方式,因此负责发送邮件的 SMTP 进程就是 SMTP 客户,而负责接收邮件的 SMTP 进程就是 SMTP 服务器。
    • SMTP 规定了 14 条命令和 21 种应答信息。每条命令用 4 个字母组成,而每一种应答信息一般只有一行信息,由一个 3 位数字的代码开始,后面附上(也可不附上)很简单的文字说明。

    2.1.SMTP 通信的三个阶段

    1. 连接建立:连接是在发送主机的 SMTP 客户和接收主机的 SMTP 服务器之间建立的。SMTP不使用中间的邮件服务器。

    2. 邮件传送

    3. 连接释放:邮件发送完毕后,SMTP 应释放 TCP 连接。


    三、邮件读取协议POP3 和 IMAP

    3.1.POP3协议

    • 邮局协议 POP 是一个非常简单、但功能有限的邮件读取协议,现在使用的是它的第三个版本 POP3。
    • POP 也使用客户服务器的工作方式。
    • 在接收邮件的用户 PC 机中必须运行 POP 客户程序,而在用户所连接的 ISP 的邮件服务器中则运行 POP 服务器程序。

    3.2.IMAP 协议 (Internet Message Access Protocol)

    • IMAP 也是按客户服务器方式工作,现在较新的是版本 4,即 IMAP4。
    • 用户在自己的 PC 机上就可以操纵 ISP 的邮件服务器的邮箱,就像在本地操纵一样。
    • IMAP 是一个联机协议。当用户 PC 机上的 IMAP 客户程序打开 IMAP 服务器的邮箱时,用户就可看到邮件的首部。

    3.3.IMAP 的特点

    • IMAP最大的好处就是用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件。
    • IMAP 还允许收件人只读取邮件中的某一个部分。例如,收到了一个带有视像附件(此文件可能很大)的邮件。为了节省时间,可以先下载邮件的正文部分,待以后有时间再读取或下载这个很长的附件。
    • IMAP 的缺点是如果用户没有将邮件复制到自己的 PC 机上,则邮件一直是存放在 IMAP 服务器上。因此用户需要经常与 IMAP 服务器建立连接。

    注意

    • 不要将邮件读取协议 POP 或 IMAP 与邮件传送协议 SMTP 弄混。
    • 发信人的用户代理向源邮件服务器发送邮件,以及源邮件服务器向目的邮件服务器发送邮件,都是使用 SMTP 协议。
    • 而 POP 协议或 IMAP 协议则是用户从目的邮件服务器上读取邮件所使用的协议。

    四、基于万维网的电子邮件

    image-20200202162211362

    • 电子邮件从 A 发送到网易邮件服务器是使用 HTTP 协议。
    • 两个邮件服务器之间的传送使用 SMTP。
    • 邮件从新浪邮件服务器传送到 B 是使用 HTTP 协议。

    4.1.通用因特网邮件扩充 MIME

    MIME 概述

    SMTP 有以下缺点:

    • SMTP 不能传送可执行文件或其他的二进制对象。
    • SMTP 限于传送 7 位的 ASCII 码。许多其他非英语国家的文字(如中文、俄文,甚至带重音符号的法文或德文)就无法传送。
    • SMTP 服务器会拒绝超过一定长度的邮件。
    • 某些 SMTP 的实现并没有完全按照[RFC 821]的 SMTP 标准。

    MIME 的特点

    • MIME 并没有改动 SMTP 或取代它。
    • MIME 的意图是继续使用目前的[RFC 822]格式,但增加了邮件主体的结构,并定义了传送非 ASCII 码的编码规则。

    **MIME 和 SMTP 的关系 **

    image-20200202162441017

    **MIME 主要包括三个部分 **

    • 5 个新的邮件首部字段,它们可包含在[RFC 822]首部中。这些字段提供了有关邮件主体的信息。
    • 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。
    • 定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。

    **MIME 增加 5 个新的邮件首部 **

    • MIME-Version: 标志 MIME 的版本。现在的版本号是 1.0。若无此行,则为英文文本;
    • Content-Description: 这是可读字符串,说明此邮件是什么。和邮件的主题差不多;
    • Content-Id: 邮件的唯一标识符;
    • Content-Transfer-Encoding: 在传送时邮件的主体是如何编码的;
    • Content-Type: 说明邮件的性质;

    **MIME的内容传送编码 (Content-Transfer-Encoding) **

    • 最简单的编码就是 7 位 ASCII 码,而每行不能超过 1000 个字符。MIME 对这种由 ASCII 码构成的邮件主体不进行任何转换。
    • 另一种编码称为 quoted-printable,这种编码方法适用于当所传送的数据中只有少量的非 ASCII 码。
    • 对于任意的二进制文件,可用 base64 编码。

    **MIME内容类型 **

    • MIME的标准规定 Content-Type 说明必须含有两个标识符,即内容类型(type)和子类型(subtype),中间用“/”分开。
    • MIME 标准定义了 7 个基本内容类型和 15 种子类型。
  • 相关阅读:
    the address of vector
    C++ templete: "class" vs "typename" in a templateparameter
    [C++]Template Argument Deduction: automatic type conversation is not allowed
    C++0x learning: Sequencing rules of assignment.
    Good book for C++
    [C/C++]Switch比if else快.
    operator int*() vs int* operator ()()
    UML类图
    android中shape的使用(android:angle小解)
    Activity的Launch mode详解 singleTask正解
  • 原文地址:https://www.cnblogs.com/AhuntSun-blog/p/12332554.html
Copyright © 2020-2023  润新知