计网第六章(应用层)(四)(电子邮件)

news2024/11/25 12:30:17

目录

1、三个构成

2、基本过程

3、具体实现过程

4、 电子邮件

4.1 简单邮件传送协议SMTP

4.2电子邮件的信息格式

4.3多用途因特网邮件扩展MIME

4.4邮件读取协议

4.5基于万维网的电子邮件


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

1、三个构成

电子邮件系统的三个组成构件:用户代理、邮件服务器以及电子邮件所需的协议。

用户代理是用户与电子邮件系统的接口,又称为电子邮件客户端软件。

邮件服务器是电子邮件系统的基础设施。因特网上所有的服务提供商都有邮件服务器,其功能是发送和接收邮件,同时维护用户的邮箱。

邮件协议包括邮件发送协议和邮件读取协议两类。

2、基本过程

发送方使用用户代理通过邮件发送协议(如SMTP)将邮件发送给发送方邮件服务器。

发送方邮件服务器通过邮件发送协议将邮件发送给接收方邮件服务器,

接收方在方便的时候使用用户代理通过邮件读取协议(如POP3)从接收方邮件服务器读取邮件。

3、具体实现过程

如图:发送方的用户代理作为SMTP客户与发送方邮件服务器中的SMTP服务器建立TCP连接,并用SMTP协议发送邮件。而发送方服务器中的SMTP客户与接收方邮件服务器中的SMTP服务器建立TCP连接,并用SMTP协议将已收到的待转发的邮件发送。

接收方用户代理作为POP3客户则与接收方邮件服务器中的POP3服务器建立TCP连接,并使用POP3协议读取邮件。

从这张图我们还可以看出,SMTP只会是用户代理向邮件服务器或者在邮件服务器之间。POP3是邮件服务器向用户代理。

4、 电子邮件

4.1 简单邮件传送协议SMTP

比如发送方邮件服务器和接收方邮件服务器之间的邮件传输过程:

发送方邮件服务器会周期性地扫描邮件缓存,如果发现有待转发的邮件,发送方邮件服务器中的SMTP客户和接收方邮件服务器中的SMTP服务器建立TCP连接,使用熟知端口号25。

SMTP客户和SMTP服务器之间使用命令与应答的交互方式。SMTP客户会基于这条连接给SMTP服务器发送SMTP命令,共14条。SMTP服务器也会给SMTP客户发送相应的应答,共21种。

4.2电子邮件的信息格式

一个电子邮件有信封和内容两部分,其中内容又由首部和主体两部分组成。首部和主体的信息都由用户来填写。

首部:

首部中包含有一些关键字,后面加上冒号。例如:From:后面填入发件人的电子邮件地址。

To:后面填入一或多个收件人的电子邮件。 Subject:后面填入邮件主题。

用户写好首部后,邮件系统自动将信封所需信息提取出来并写在信封上。

主体:

主体是用户想传递给收件人的核心信息。

4.3多用途因特网邮件扩展MIME

4.3.1 产生原因:

SMTP协议只能传送ASCII码文本数据。即一些多媒体内容(比如带有图片、视频)等无法进行传送。

为了解决SMTP传送非ASCII码文本的问题,便有了多用途因特网邮件扩展MIME。

4.3.2 作用:

它的作用就是实现非ASCII码数据和ASCII码数据之间的转换。

发送方利用MIME将非ASCII码数据变为ASCII码数据,随后就可以使用SMTP协议进行传送。而接收方是利用MIME实现两个数据之间的逆转换,这样就可以得到包含非ASCII码数据的电子邮件。

MIME不仅用于SMTP,也同样适用于面向ASCII字符的HTTP协议。

4.3.3内容:

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

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

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

4.4邮件读取协议

常用的邮件读取协议主要有以下两类:

邮局协议POP:POP3是第三个版本,是因特网正式标准。

该协议非常简单但功能有限。用户只能以下载并删除(或下载并保留)方式从邮件服务器下载邮件到用户方计算机。不允许用户在邮件服务器上管理自己的邮件。POP3采用熟知端口110。

因特网邮件访问协议IMAP:IMAP4是其第四个版本,目前只是因特网建议标准。

IMAP协议功能比POP3更加强大,用户在自己的计算机上就可以操控邮件服务器中的邮箱,就像在本地操控一样,因此IMAP是一个联机协议。IMAP4采用熟知端口143。

4.5基于万维网的电子邮件

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

用户在邮件服务器网站上就可以管理和处理自己的邮件,不需要将邮件下载到本地进行管理。

用户使用同一个邮件服务器:

如图:用户A想要给用户B发送邮件,A使用浏览器登录邮件服务器网站,撰写并发送邮件给用户B。B也使用浏览器登录邮件服务器网站来读取邮件。 在发送和接收邮件的过程中,用户与服务器之间使用的都是HTTP协议。

用户使用不同的邮件服务器:

如图:它与上面主要不同点在于,当用户使用不同的邮件服务器时,邮件服务器之间会用SMTP协议实现邮件的传送。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1097655.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

echarts 柱状折线图(折叠柱状图)月年汇总

echarts柱状折线图 前几项是按月计算&#xff0c;最后一列是年份这种情况如何实现呢&#xff1f; 如下图 或者 代码如下&#xff1a; 图一代码&#xff1a; <e-charts :option"option5" class"chart7"></e-charts>const option5 {tool…

Python数据分析实战-二维数组转一维数组的几种方法总结(附源码和实现效果)

实现功能 二维数组转一维数组的几种方法。 实现代码 import numpy as np# 二维数组 array_2d np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])# 法1&#xff1a;将二维数组转换为一维数组 array_1d array_2d.flatten() print(法1&#xff1a;, array_1d)# 法2&#xff1a;将二…

揭秘成熟互联网团队:团队成员包括哪些岗位?

文章目录 &#x1f34a; 岗位&#x1f389; 1. 产品经理&#x1f389; 2. UI/UX设计师&#x1f389; 3. 前端工程师&#x1f389; 4. 后端工程师&#x1f389; 5. 数据分析师&#x1f389; 6. 运营专员&#x1f389; 7. 测试工程师&#x1f389; 8. 项目经理&#x1f389; 9. 运…

个人轻博客PHP开源系统/溯雪Sxlog轻博客源码/洁干净轻/占内存极低/php源码

源码简介&#xff1a; 溯雪(sxlog)它是一款很简洁越低内存的轻博客程序&#xff0c;整个程序包不到200KB&#xff0c;占内存极小&#xff0c;比一张照片都要小很多。简洁高效&#xff0c;占用空间内存极小&#xff0c;而且它不依赖任何数据库&#xff0c;不依赖富文本编辑器&a…

高效PPT制作与演示技巧大揭秘

PPT是职场必备技能&#xff0c;尤其在商务活动中&#xff0c;企业宣传、项目提案、路演宣讲……都需要用好PPT。然而&#xff0c;很多人的PPT效率低、效果差&#xff0c;客户不认可、老板不满意。 PPT不仅是办公软件&#xff0c;更是以汇报对象为中心、以共同的目标为导向、以…

Spring AOP归纳与总结

前言 AOP的核心思想是面向切面编程。AOP规范定义了多种概念&#xff0c;常用的aop框架有spring aop和AspectJ&#xff0c;两者功能和性能差异较大&#xff0c;现在默认的AOP框架是AspectJ&#xff0c;下面逐渐归纳其相关概念、功能及实现原理。 1. 概念 1. 切面&#xff1a;…

抖音直播招聘报白通过率是百分之99劳务公司报白有哪些好处?

首先抖音已经成为短视频流量最大的平台&#xff0c;抖音日活用户8亿&#xff0c;但是短视频招聘的企业不足300家&#xff0c;能直播招聘的不企业或者人力资源公司只有8000家&#xff0c;根据这些数据我们就能看到抖音招聘领域有巨大的空间&#xff0c;是以后的朝阳产业。 抖音…

网卡介绍篇

目录 1.什么是网卡&#xff1f; 2.网卡的演进 3.网卡的主要功能 4.服务器网卡介绍 5.服务器网卡的分类 6.网卡接口介绍 7.业界网卡主流厂商 8.SmartNIC概念介绍 9.SmartNIC产业发展趋势 10.SmartNIC实现 10-1.实现形式 10-2.SmartNIC不同实现技术对比 11.Mellanox…

Redis常见面试题总结

Redis(Remote Dictionary Server) 由Salvator Sanfilippo在2009年开源的使用 ANSI C 语言编写、高性能、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库&#xff0c;并提供多种语言的 API 的非关系型数据库。 与传统数据库不同的是 Redis 的数据是存…

一百八十九、ClickHouse——在海豚调度器中执行ClickHouse建库建表语句

一、目的 由于Hive处理好的结果数据要同步到ClickHouse中&#xff0c;因此需要在在海豚调度器中执行ClickHouse的ADS层的建库建表语句 二、执行步骤 &#xff08;一&#xff09;情形一&#xff1a;ClickHouse和海豚在同一服务器上 1、直接在海豚中创建执行SQL文件脚本的工作…

ESD接地实时监控在工业生产中的作用是什么

ESD&#xff08;静电放电&#xff09;接地实时监控在工业生产中起着非常重要的作用。ESD是一种静电现象&#xff0c;它可能会在生产过程中对设备、产品和人员造成损害。ESD接地实时监控系统可以帮助生产企业及时检测并预防ESD事件&#xff0c;从而保护设备和产品的质量&#xf…

【编码魔法师系列_构建型2.1】单例模式「饿汉式」(Singleton Pattern)

学会设计模式&#xff0c;你就可以像拥有魔法一样&#xff0c;在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们&#xff08;GoF&#xff09;凝聚出来的最佳实践&#xff0c;可以提高代码的可读性、可维护性和可重用性&#xff0c;从而让我们的开发效率更高。通…

Java实现图片转文字!(OCR实现)

今天给大家分享一个Java实现OCR&#xff08;图片转文字&#xff09;的方法。 具体实现是把tess4j整合到一个SpringBoot项目中。 下面是详细步骤 什么是Tess4j 在实现OCR之前&#xff0c;先要分清楚Tesseract和Tess4j的区别。 Tesseract是一个开源的光学字符识别&#xff08…

Python数据分析实战-applymap、apply、map有什么区别?(附源码和实现效果)

实现功能 applymap&#xff1a;applymap 是 DataFrame 对象的方法&#xff0c;用于对 DataFrame 中的每个元素应用一个函数。它将函数应用于 DataFrame 的每个元素&#xff0c;并返回一个新的具有相同形状的 DataFrame。applymap 通常用于对 DataFrame 中的每个单元格进行元素…

线性系统的根轨迹分析

根轨迹法&#xff1a;通过求开环零点和开环极点&#xff0c;来画出闭环极点在S平面的位置。 也是用来判断系统稳定性的。 定义&#xff1a;根轨迹是指系统特征方程式的根(闭环极点&#xff09;随系统参量变化 在S平面 上运动而形成的轨迹。 开环传递函数里边的一个参数&…

还不会在MT4用Renko,FPmarkets澳福手把手教你一分钟学会

很多投资者还不会在MT4上使用Renko&#xff0c;让FPmarkets澳福通过一个具体的例子来探讨&#xff0c;Renko图表指标在MT4平台上的应用&#xff0c;以AG Renko为例。 首先&#xff0c;投资者需要解压缩下载的档案&#xff0c;并将其移动到MT4的“指标”文件夹中。重启MetaTrade…

1-k8s1.24-底座搭建-基于containerd

文章目录 一、服务器准备二、安装Containerd三、安装k8s四、安装部署dashboard ps&#xff1a;第一遍搭建ks8的时候&#xff0c;由于k8s在1.24版本之后就放弃了对docker的支持&#xff0c;如果要继续使用docker需要自己加载插件。所以一开始就是直接使用 k8s1.24containerd进行…

COMPFEST 15 - Preliminary Online Mirror I. Imagination Castle(dp递推+sg函数思想)

题目 n*m(1<n,m<2e5)的棋盘&#xff0c;有k(k<min(n*m,2e5))个特殊位置&#xff0c; 初始时在(1,1)位置&#xff0c;Chaneka和Bhinneka两人玩游戏&#xff0c;Chaneka先手&#xff0c; 当你在(x,y)位置时&#xff0c;下一步可以走到同一行靠右的位置(xx,y>y)或同…

格式化前做好备份,内存卡数据安全无忧

内存卡格式化会怎么样&#xff1f;了解格式化原理的小伙伴都明白&#xff0c;格式化操作会清除内存卡上的所有数据&#xff0c;包括文档、照片、视频等文件。 因此&#xff0c;在格式化内存卡之前&#xff0c;我们需要将重要的数据进行备份以免丢失。那么&#xff0c;内存卡格式…

408-2015

一、单项选择题 1.已知程序如下。 int S(int n){return n<0?0:s(n-1)n; } void main(){cout<<S(1); }程序运行时使用栈来保存调用过程的信息&#xff0c;自栈底到栈顶保存的信息依次是_____。 A.main()->S(1)->S(0) B.S(0)->S(1)->main() …