计网第六章(应用层)(四)(电子邮件)
电子邮件采用客户/服务器的方式。
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协议实现邮件的传送。
相关文章:
计网第六章(应用层)(四)(电子邮件)
电子邮件采用客户/服务器的方式。 1、三个构成 电子邮件系统的三个组成构件:用户代理、邮件服务器以及电子邮件所需的协议。 用户代理是用户与电子邮件系统的接口,又称为电子邮件客户端软件。 邮件服务器是电子邮件系统的基础设施。因特网上所有的服…...
Lua篇笔记
. 和 : 的区别 lua的面向对象 Lua数据类型 nil number bool table string userdata thread function Lua-字符串连接 C#与Lua交互过程及原理 Lua中的闭包 常见的一些Lua功能 热重载: function reload_module(module_name) local old_module _G[module_name] --取…...
一种更具破坏力的DDoS放大攻击新模式
近日,内容分发网络(CDN)运营商Akamai表示,一种使网站快速瘫痪的DDoS放大攻击新方法正在被不法分子所利用。这种方法是通过控制数量巨大的中间设备(middlebox,主要是指配置不当的服务器)…...
WordPress 常规设置页面调用媒体中心上传图片插入URL(新版可用)
首先,我们需要在主题或插件文件夹中创建一个 JavaScript 文件(如:media-uploader.js),该文件中包含如下代码。 /*** 媒体中心上传 js **/ jQuery(document).ready(function($){var mediaUploader;$(#upload_image_but…...
Elasticsearch实现检索词自动补全(检索词补全,自动纠错,拼音补全,繁简转换) 包含demo
Elasticsearch实现检索词自动补全 自动补全定义映射字段建立索引测试自动补全 自动纠错查询语句查询结果 拼音补全与繁简转换安装 elasticsearch-analysis-pinyin 插件定义索引与映射建立拼音自动补全索引测试拼音自动补全测试繁简转换自动补全 代码实现demo结构demo获取 自动补…...
LaunchView/启动页 的实现
1. 创建启动画板,LaunchScreen.storyboard 添加组件如图: 2. 项目中设置只支持竖屏,添加启动画板,如图: 3. 创建启动画面动画视图,LaunchView.swift import SwiftUI/// 启动视图 struct LaunchView: View {/// 字符串转换为字符串…...
windows安装npm教程
在安装和使用NPM之前,我们需要先了解一下,NPM 是什么,能干啥? 一、NPM介绍 NPM(Node Package Manager)是一个用于管理和共享JavaScript代码包的工具。它是Node.js生态系统的一部分,广泛用于构…...
网络端口验证
网络端口连通性验证 1、背景2、目标3、环境4、部署4.1、准备工作4.2、安装4.3、场景测试 1、背景 在日常运维过程中经常会遇到以下两种场景: 1、程序业务端口的开具及验证 2、业务程序访问异常网络排障 2、目标 1、验证端口的正确开具 2、网络策略的连通性 3、环…...
MongoDB 索引和常用命令
一、基本常用命令 1.1 案例需求 存放文章评论的数据存放到 MongoDB 中,数据结构参考如下,其中数据库为 articledb, 专栏文章评论 comment 字段名称 字段含义 字段类型 备注 _id ID ObjectId或String Mongo的主键的字段 articlei…...
【超详细】win10安装docker
win10安装docker 因为要在win10复现一个CVE漏洞,需要用到docker所以特地自己亲自安装了一下,其实在win10上安装docker与在Linux上面的原理一致,都是将docker安装在虚拟机里,不同的是win10是安装在Hyper-V虚拟机上的,需…...
JVM调优(一)
什么时候会有内存泄漏,怎么排查? 答: 首先内存泄漏是堆中的一些对象不会再被使用了,但是无法被垃圾收集器回收,如果不进行处理,最终会导致抛出 java.lang.OutOfMemoryError 异常。 内存泄露: …...
Parallels Desktop 19中文-- PD19最新安装
Parallels Desktop 19可以让我们在Mac电脑上运行Windows和其他操作系统,而无需重启计算机。这款软件的稳定性较高,能够在Mac上同时运行多个操作系统,如Windows、Linux等,而无需重启电脑。它可以让用户无缝地在不同操作系统之间切换…...
【c++】向webrtc学比较1:AheadOf、IsNewerTimestamp
webrtc源码分析-rtp序列号新旧比较 大神文章分析的非常到位。大神分析:AheadOrAt(a, b)是判断a是否比b新的核心,其原理是这样的:rfc1982规定了序列号递增间隔不能超过取值范围的1/2(这是自己理解的),那么要判断a是否比b新,只要判断b到a的递增是否在1/2即可,递增超过1/2,…...
华为云云耀云服务器L实例评测|企业项目最佳实践之docker部署及应用(七)
华为云云耀云服务器L实例评测|企业项目最佳实践系列: 华为云云耀云服务器L实例评测|企业项目最佳实践之云服务器介绍(一) 华为云云耀云服务器L实例评测|企业项目最佳实践之华为云介绍(二) 华为云云耀云服务器L实例评测࿵…...
MAC上使用Wireshark常见问题
文章目录 介绍正文启动异常-Permission denied解决方法 过滤协议和地址指定源地址和目的地址调整 time format 介绍 简单记录Wireshark在日常使用过程中的遇到的小case。 正文 Wireshark相较于tcpdump使用较为简单,交互也更为友好。 点击Start即可启动抓包 启动…...
在C++中++a和a++有什么区别?
2023年10月16日,周一中午 a和a在语义上的区别 a是先进行运算(增加1),然后返回新值。 a是先返回原值,然后进行运算(增加1)。 a和a在效率上的区别 a直接返回新值,不需要临时变量保存原值。 而a需要先返回原值,然后再进行增加1的操作。这需要使用一个临时变量来保存…...
NewStarCTF2023公开赛道-压缩包们
题目提示是压缩包 用010editor打开,不见PK头,补上50 4B 03 04 14 00 00 00 将文件改成.zip后缀,打开,解压出flag.zip 尝试解压,报错 发现一串base64编码 SSBsaWtlIHNpeC1kaWdpdCBudW1iZXJzIGJlY2F1c2UgdGhleSBhcmUgd…...
oracle数据库增加表空间数据文件
查询数据文件:select * from dba_data_files order by file_name; 增加:alter tablespace 数据库名 add datafile data size 34359721984;...
【08】基础知识:React中收集表单数据(非受控组件和受控组件)
一、概念 非受控组件: 页面中所有输入类的 DOM,现用现取。 给组件绑定 ref 属性,在需要时通过 ref 获取相应值。 受控组件: 页面中所有输入类的 DOM,随着输入,将内容维护到状态 state中,当…...
数据结构之堆排序和前,中,后,层序遍历,链式二叉树
首先我们要知道升序我们要建小堆,降序建大堆,这与我们的大多人直觉相违背。 因为我们大多数人认为应该将堆顶的数据输出,但如果这样就会导致堆顶出堆以后,堆结构会被破坏,显然我们不能这样。 所有我们反其道而行&…...
多线程中ThreadPoolExecutor.map()中传递多个参数
with concurrent.futures.ThreadPoolExecutor(max_threads) as executor:results executor.map(get_captcha_image, ip_addrs, [img_url] * len(ip_addrs)) #要传入多个参数时,每个参数都得是固定相同长度的可迭代对象# 收集结果for result in results:print(resul…...
linux centos7 环境下 no such file or directory
目录 1.问题描述2.主要原因2.1修改后代码2.2修改前代码 总结参考 1.问题描述 预览excel文件时无法找到对应的html文件 2.主要原因 异常原因:代码获取的是系统的tmp文件,但是linux环境环境中心tmp目录是没有权限的,所以不能获取系统的根目录…...
Nginx 反向代理 SSL 证书绑定域名
配置 Nginx 反向代理和 SSL 泛域名证书绑定域名 Nginx 是一个功能强大的 Web 服务器和反向代理服务器,可以用于将客户端请求转发到后端服务器,并提供安全的 HTTPS 连接。本文将介绍如何配置 Nginx 反向代理,并使用 SSL 泛域名证书绑定域名&a…...
SpringBoot 集成 JMS 与 IBMMQ 代码示例教程
文章目录 前言一、集成 JMS 与 IBMMQ1、pom 依赖2、yml 配置3、Properties 配置类4、Factory 连接工厂类5、配置连接认证6、配置缓存连接工厂7、配置事务管理器8、配置JMS模板9、消息发送与接收 总结 前言 SpringBoot 集成 IBMMQ,实现两个服务间的消息通信。 一、集…...
大模型之Prompt研究和技巧
大模型之Prompt研究和技巧 大模型之Prompt编写简介组成技术Zero-ShotFew-shotCOTCOT-SCTOTGoTReAct 大模型之Prompt编写 简介 Prompt是是给 AI **模型的指令,**一个简短的文本输入,用于引导AI模型生成特定的回答或执行特定任务。 Prompt是你与语言模型沟…...
掌握Golang匿名函数
一个全面的指南,以理解和使用Golang中的匿名函数 Golang以其简单和高效而闻名,赋予开发人员各种编程范式。其中一项增强代码模块化和灵活性的功能就是匿名函数。在这篇正式的博客文章中,我们将踏上探索Golang匿名函数深度的旅程。通过真实世…...
HarmonyOS云开发基础认证---练习题二
【判断题】 2/2 Serverless是云计算下一代的默认计算范式。 正确(True) 【判断题】 2/2 接入认证服务后,用户每次收到验证码短信都需要开发者买单。 错误(False) 【判断题】 2/2 认证服务手机号码登录需要填写国家码。 正确(True) 【判断题】 2/2 在Cloud Functi…...
ffmpeg视频解码器的配置选项含义
lowres的含义 lowres是AVCodecContext结构体中的一个成员变量,用于指定编解码器的降低分辨率级别。 在某些情况下,为了加快编解码的速度或减少计算资源的消耗,可以通过设置lowres参数来降低编解码器的分辨率级别。这将导致编解码器在处理视…...
enter ubuntu boot option in virt-manager
在全屏模型下,启动过程中按下F8或者Ctrl F8。 参考:https://serverfault.com/questions/463024/how-do-i-access-the-f8-bootmenu-while-booting-a-windows-2008r2-kvm-guest-vm...
电商运营该如何做 AB 测试
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 近年,电商行业进入了一个新的发展阶段,一方面电商市场规模持续扩大,另一方面直播电商、即时零售、社区团购等新兴电商业态在疫情…...
手机免费平面设计软件/南昌seo网站排名
由于信道管理器在客户端和服务端所起的不同作用,分为信道监听器和信道工厂。和服务端的信道监听其相比,处于客户端的信道工厂显得简单。从名称就可以看得出来,信道工厂的作用就是单纯的创建用于消息发送的信道。我们先来看看与信道工厂相关的…...
怎么在id导入wordpress/小红书推广方案
我这里使用了DoTween插件 下载 请在Unity 的Asset Store里下载 实例代码如下: using System.Collections; using System.Collections.Generic; using UnityEngine; using DG.Tweening;public class TuBiao : MonoBehaviour {//创建一个变量 用来改变小图标 是上 还是下 的动…...
海淀公安局网站备案/营销型企业网站有哪些
1.压缩 对于test目录,使用 zip -rq test.zip test r表示递归压缩,q表示不显示过程 2.解压缩 unzip -q test.zip 转载于:https://www.cnblogs.com/huangshiyu13/p/7196309.html...
wordpress怎么在导航栏添加搜索框/google搜索
你需要一份复印件:b a.copy()b a创建一个引用,因此a is b它们都指向内存中的相同位置,a.copy()实际上创建了一个新对象。在^{pr2}$如果使用basic slicing对数组进行切片,则id将不同,但任何更改都将反映在a和b中&…...
做网站的前途/广州网站优化工具
我在构思这篇文章。我想象自己能够在时机成熟时,把自己的想法都倾诉于纸端。但刚刚过去一个月,我就意识到这并非易事:随着工作的推进,我忘掉了很多自己刚刚学到的东西。这些东西快速内化,使我的大脑开始欺骗自己&#…...
武昌区建设局网站/站长工具seo下载
前言 本文是 对 Compressed Channel Estimation and Joint Beamforming for Intelligent Reflecting Surface-Assisted Millimeter Wave Systems 一文的分析和复现。 文章已在 IEEE Signal Processing Letter上发表, 这里给出 arxiv链接: 传送门 信道模…...