计算机网络:应用层 —— 电子邮件

news/2025/2/26 8:59:41

文章目录

电子邮件(E-mail)是因特网上最早流行的一种应用,并且仍然是当今因特网上最重要、最实用的应用之一。它通过电子方式发送和接收消息,极大地改变了人们的沟通方式。

电子邮件的起源与发展

电子邮件的历史可以追溯到20世纪60年代的阿帕网(ARPANET)。最初,电子邮件仅用于同一台计算机上的用户之间发送消息,后来逐渐发展为跨网络的通信工具。1971年,雷·汤姆林森(Ray Tomlinson)发明了现代电子邮件系统,并引入了@符号用于区分用户和服务器,奠定了电子邮件的基本格式。

随着互联网的普及,电子邮件成为全球范围内最常用的通信方式之一。如今,电子邮件不仅用于个人通信,还广泛应用于商业、教育、政府等多个领域。

传统的电话通信属于实时通信,存在以下两个缺点:

  • 电话通信的主叫和被叫双方必须同时在场;
  • 一些不是十分紧迫的电话也常常不必要地打断人们的工作或休息。

电子邮件与邮政系统的寄信相似:

  • 发件人将邮件发送到自己使用的邮件服务器

  • 发件人的邮件服务器,将收到的邮件按其目的地址转发到收件人邮件服务器中的收件人邮箱

  • 收件人在方便的时候访问收件人邮件服务器中自己的邮箱,获取收到的电子邮件

电子邮件使用方便、传递迅速而且费用低廉。它不仅可以传送文字信息,而且还可附上声音和图像。由于电子邮件的广泛使用,现在许多国家已经正式取消了电报业务。在我国,电信局的电报业务也因电子邮件的普及而濒临消失。

电子邮件的组成

电子邮件系统采用客户/服务器方式。

电子邮件系统的三个主要组成构件:

  • 用户代理(Mail User Agent, MUA):用户与电子邮件系统的接口,又称为电子邮件客户端软件

  • 邮件服务器(Mail Server):电子邮件系统的基础设施。因特网上所有的 ISP 都有邮件服务器,其功能是发送和接收邮件,同时还要负责维护用户的邮箱

  • 协议电子邮件所需的协议,包括邮件发送协议(例如 SMTP )和邮件读取协议(例如 POP3IMAP

电子邮件协议

邮件发送和接收过程

在这里插入图片描述

电子邮件的发送和接收过程涉及多个协议和服务器的协作,以下是其基本工作流程:

  1. 发送邮件:用户通过邮件客户端撰写邮件并点击“发送”按钮。邮件客户端使用 SMTP(简单邮件传输协议)将邮件发送到用户的邮件服务器。

  2. 邮件服务器之间的转发:发送方邮件服务器使用 SMTP 协议将邮件转发到接收方邮件服务器。如果接收方服务器不可用,邮件将被暂时存储在发送方服务器的队列中,等待重试。

  3. 接收邮件:接收方邮件服务器接收邮件后,将其存储在用户的邮箱中。用户可以通过邮件客户端使用 POP3(邮局协议)或 IMAP(互联网消息访问协议)协议从服务器下载或访问邮件。

  4. 邮件存储与管理:邮件存储在服务器的邮箱中,用户可以通过邮件客户端进行管理,如删除、回复、转发等操作。

邮件发送协议

SMTP协议

简单邮件传送协议SMTP(Simple Mail Transfer Protocol)用于发送电子邮件。当使用电子邮件客户端(如Outlook、Gmail等)发送一封电子邮件时,该客户端会使用 SMTP 协议将邮件发送到指定的 SMTP 服务器。然后,SMTP 服务器会负责将邮件路由到目标邮件服务器。

SMTP 客户与服务器之间,通过命令与应答的交互方式,最终实现 SMTP 客户发送邮件给 SMTP 服务器。

![[简单邮件传送协议SMTP.png]]

  1. 客户端与服务器建立 TCP 连接。

  2. 客户端发送 HELOEHLO 命令,标识自己的身份。

  3. 客户端发送 MAIL FROM 命令,指定发件人地址。

  4. 客户端发送 RCPT TO 命令,指定收件人地址。

  5. 客户端发送 DATA 命令,开始传输邮件内容。

  6. 邮件传输完成后,客户端发送 . 表示结束,服务器返回响应。

  7. 客户端发送 QUIT 命令,向服务器请求断开连接。

多用途因特网邮件扩展MIME

SMTP协议只能传送ASCII码文本数据,不能传送可执行文件或其他的二进制对象。SMTP 不能满足传送多媒体邮件(例如带有图片、音频或视频数据)的需要。并且许多其他非英语国家的文字(例如中文、俄文、甚至带有重音符号的法文或德文)也无法用 SMTP 传送。

为解决 SMTP 传送非 ASCII 码文本的问题,提出了多用途因特网邮件扩展MIME(Multipurpose Internet Mail Extensions)

![[多用途因特网邮件扩展MIME.png]]

  • 增加了5个新的邮件首部字段,这些字段提共了有关邮件主体的信息。

  • 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。

  • 定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。

  • MIME 不仅仅用于 SMTP也用于后来的同样面向ASCII字符的HTTP

电子邮件的信息格式

电子邮件的信息格式并不是由 SMTP 定义的,而是在 [RFC 822] 中单独定义的。这个 RFC 文档已在 2008 年更新为[RFC 5322]。一个电子邮件信封内容两部分。而内容又由首部主体两部分构成。

在这里插入图片描述

邮件读取协议

常用的邮件读取协议有两个:邮局协议POP3因特网邮件访问协议IMAP

POP3IMAP4采用基于TCP连接的客户/服务器方式POP3 使用熟知端口 110IMAP4 使用熟知端口 143

邮局协议POP

邮局协议 POP(Post Office Protocol),POP3 是其第三个版本,是因特网正式标准。用于从邮件服务器检索电子邮件。当使用电子邮件客户端从邮件服务器下载邮件时,该客户端会使用 POP3 协议。

POP3 协议允许将邮件从服务器下载到本地计算机,并从服务器上删除这些邮件。但用户只能以下载并删除方式下载并保留方式,从邮件服务器下载邮件到用户方计算机。不允许用户在邮件服务器上管理自己的邮件。(例如创建文件夹,对邮件进行分类管理等)

POP3 基于 TCP 协议,工作在端口110(明文)或端口 995(加密)。其工作过程为:

  1. 客户端与服务器建立 TCP 连接。

  2. 客户端发送用户名和密码进行认证。

  3. 客户端可以列出邮件列表、下载邮件或删除邮件。

  4. 完成操作后,客户端发送 QUIT 命令断开连接。

因特网邮件访问协议IMAP

因特网邮件访问协议 IMAP(Internet Message Access Protocol),IMAP4 是其第四个版本,目前还只是因特网建议标准。它是功能比 POP3 强大的邮件读取协议。用户在自己的计算机上就可以操控邮件服务器中的邮箱,就像在本地操控一样,而无需将邮件下载到本地。因此 IMAP 是一个联机协议。

IMAP 基于 TCP 协议,工作在端口143(明文)或端口993(加密)。其工作过程为:

  1. 客户端与服务器建立 TCP 连接。

  2. 客户端发送用户名和密码进行认证。

  3. 客户端可以列出邮箱、选择邮箱、检索邮件、标记邮件等。

  4. 完成操作后,客户端发送 LOGOUT 命令断开连接。

基于万维网的电子邮件

通过浏览器登录(提供用户名和口令)邮件服务器万维网网站就可以撰写、收发、阅读和管理电子邮件。这种工作模式与 IMAP 很类似,不同的是用户计算机无需安装专门的用户代理程序,只需要使用通用的万维网浏览器。

邮件服务器网站通常都提供非常强大和方便的邮件管理功能,用户可以在邮件服务器网站上管理和处理自己的邮件,而不需要将邮件下载到本地进行管理。

用户在发送和接收邮件时,与服务器之间都使用的是 HTTP 超文本传送协议,而不需要使用 SMTP 和 POP3协议。若用户使用的邮件服务器不同,则邮件服务器使用 SMTP 协议将邮件发送给另一个用户的邮件服务器。


http://www.niftyadmin.cn/n/5868435.html

相关文章

SSL/TLS 协议、SSL证书 和 SSH协议 的区别和联系

下面是 SSL/TLS 协议、SSL证书 和 SSH协议 的区别和联系,包含它们的英文全称和中文全称: 属性SSL/TLS 协议SSL证书SSH 协议英文全称Secure Sockets Layer / Transport Layer SecuritySecure Sockets Layer CertificateSecure Shell Protocol中文全称安全…

UE5 Computer Shader学习笔记

首先这里是绑定.usf文件的路径,并声明是用声明着色器 上面就是对应的usf文件路径,在第一张图进行链接 Shader Frequency 的作用 Shader Frequency 是 Unreal Engine 中用于描述着色器类型和其执行阶段的分类。常见的 Shader Frequency 包括&#xff1a…

Spring 原始注解详解与实战指南

📝 1. 前言 在 Spring 框架的发展过程中,注解的引入大大简化了配置,提升了开发效率 本文将详细介绍 Spring 最初引入的核心注解,包括 Component、Controller、Service、Repository、Autowired、Qualifier 和 Value 等,…

面试之《react近几个版本的更新要点》

React 16.x 系列 React 16.0 Fiber 架构:引入了全新的 Fiber 协调器,解决了旧版同步渲染长时间阻塞主线程的问题,实现了异步可中断渲染、优先级调度、时间分片等特性,大大提升了大型应用的性能和响应能力。 新的错误边界&#x…

【愚公系列】《Python网络爬虫从入门到精通》033-DataFrame的数据排序

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…

[Web 安全] PHP 反序列化漏洞 —— PHP 序列化 反序列化

关注这个专栏的其他相关笔记:[Web 安全] 反序列化漏洞 - 学习笔记-CSDN博客 0x01:PHP 序列化 — Serialize 序列化就是将对象的状态信息转化为可以存储或传输的形式的过程,在 PHP 中,通常使用 serialize() 函数来完成序列化的操作…

React七Formik

Formik是一个专为React构建的开源表单库。它提供了一个易于使用的API来处理表单状态管理,表单验证以及表单提交。Formik支持React中的所有表单元素和事件,可以很好地与React生态系统中的其他库集成。同时,Formik还提供了一些高级功能&#xf…

github 推送的常见问题以及解决

文章目录 git add 的时候问题1为什么会发生这种情况?Git 的警告含义如何解决?1. **保持 Git 的默认行为(推荐)**2. **禁用自动转换**3. **仅在工作目录中禁用转换**4. **统一使用 LF(跨平台开发推荐)** git…