计算机网络——应用层(3)电子邮件

电子邮件

1、概述:

电子邮件是使用电子设备交换的邮件及其方法。

优点:使用方便,传递迅速,费用低廉,可传送多种信息

重要标准:

  • 简单邮件发送协议:SMTP
  • 互联网文本报文格式
  • 通用互联网邮件扩充MIME
  • 邮件读取协议:POP3和IMAP

2、电子邮件的组成:三个主要构件(用户代理、邮件服务器、邮件发送和读取协议)

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

基本功能:撰写、显示、处理、通信。

  • 邮件服务器:又被称为邮件传输代理。

功能:发送和接收邮件,同时还要向发信人报告邮件传送的情况。按照客户服务器方式工作。邮件服务器必须能同时充当客户端和服务器

  • 邮件发送和读取协议:

简单邮件发送协议SMTP:用于在用户代理向邮件服务器或邮件服务器之间发送邮件。

邮局协议POP3:用于用户代理从邮件服务器读取邮件

这两个协议都使用TCP连接可靠传输

3、电子邮件由信封和内容两部分组成,电子邮件的传输程序根据邮件信封上的信息来传送邮件,用户从自己的邮箱中读取邮件时才能见到邮件的内容。

4、电子邮件地址的格式:

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

例如2134587@qq.com这个电子邮件地址中,收件人邮箱名是2134587,邮箱所在主机域名是qq.com。

5、简单邮件传送协议SMTP

SMTP规定了在两个相互通信的SMTP进程之间交换信息的方法,使用客户服务器方式基于TCP实现客户与服务器的通信。

SMTP是基于文本(ASCⅡ)的协议,客户与服务器之间采用命令-响应方式进行交互。

TCP连接建立在发送主机和接收主机之间,发送完邮件释放TCP连接。

6、Mail报文格式:

RFC 5322:文本报文格式标准:

header lines,e.g.

  • To:
  • From:
  • Subject:

body:“报文”

  • ACSⅡ character only

7、SMTP总结:

  • 使用持久连接
  • 要求报文为7为ASCⅡ编码
  • 服务器使用CRLF.CRLF决定报文的尾部

SMTP的缺点:

  • 不能传送可执行文件或其他二进制对象
  • 限于传送7位ASCⅡ码,无法传送非ASCⅡ编码信息
  • 服务器会拒绝超过一定长度的邮件
  • 某些SMTP的实现不完全按照[RFC 821]的SMTP标准

8、MIME概述

  • 通过互联网邮件扩充MIME并没有或取代他
  • 继续使用目前的[RFC 822],但增加了邮件主体的结构并定义了传送非ASCⅡ码的编码规则。

9、MIME的三个组成部分

  • 5个新的邮件首部字段
  • 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化
  • 定义了传送编码,可对任何内容格式进行转换而不会邮件系统改变

10、邮件读取协议

SMTP:交付/存储邮件到接收方的服务器

邮件读取协议:从服务器访问邮件

  • POP:邮局协议[RFC 1939]:授权,download
  • IMAP:Internet邮件访问协议[RFC 1730]:更多功能,包括操作服务器上存储的邮件
  • HTTP:gmail,Hotmail,Yahoo!Mail,etc.

11、POP3协议:

使用客户服务器方式;基于TCP实现

12、IMAP协议

使用客户服务器方式;基于TCP;是一个联机协议。

IMAP的特点:

  • 连接后只下载邮件首部
  • 用户直接在IMAP服务器上创建和管理文件夹
  • 用户可以搜索邮件内容
  • 用户可以在不同的地方使用不同的计算机随时上网阅读和处理自己的邮件。
  • 允许收信人只读取邮件中的某一个部分
  • 缺点:要想查阅邮件必须先联网

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

万维网电子邮件:

  • 发送、接受电子邮件使用HTTP协议
  • 两个邮件服务器之间传送邮件时使用SMTP
  • 使用HTTP POST方法提交要发送的邮件
  • 使用HTTP GET方法读取邮件

用户代理(UA)的缺点:

  • 必须在计算机中安装用户代理软件
  • 收发邮件不方便

万维网电子邮件优点:

  • 不需要安装用户代理软件
  • 计算机能联网就能非常方便收发电子邮件
  • 界面友好

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

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

相关文章

leetcode717-1-bit and 2-bit Characters

题目 有两种特殊字符: 第一种字符可以用一比特 0 表示 第二种字符可以用两比特(10 或 11)表示 给你一个以 0 结尾的二进制数组 bits ,如果最后一个字符必须是一个一比特字符,则返回 true 。 示例 1: 输入: bits [1, …

浏览器工作原理与实践--跨站脚本攻击(XSS):为什么Cookie中有HttpOnly属性

通过上篇文章的介绍,我们知道了同源策略可以隔离各个站点之间的DOM交互、页面数据和网络通信,虽然严格的同源策略会带来更多的安全,但是也束缚了Web。这就需要在安全和自由之间找到一个平衡点,所以我们默认页面中可以引用任意第三…

Linux--主函数的三个参数

主函数的三个参数 1).主函数的三个参数的含义: argc:主函数的参数个数 argv:主函数的参数内容 envp:环境变量; #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc,char *argv[],char *envp[]) { int i0;printf("argc%d…

web前端框架设计第四课-条件判断与列表渲染

web前端框架设计第四课-条件判断与列表渲染 一.预习笔记 1.条件判断 1-1&#xff1a;v-if指令&#xff1a;根据表达式的值来判断是否输出DOM元素 1-2&#xff1a;template中使用v-if 1-3&#xff1a;v-else 1-4&#xff1a;v-else-if 1-5&#xff1a;v-show&#xff08;不支…

【快捷部署】017_MongoDB(6.0.14)

&#x1f4e3;【快捷部署系列】017期信息 编号选型版本操作系统部署形式部署模式复检时间017MongoDB6.0.14Ubuntu 20.04apt单机2024-04-11 一、快捷部署 #!/bin/bash ################################################################################# # 作者&#xff1a;…

SQL注入sqli_labs靶场第十七题

B站教学视频很详细 【sql注入之sqli-labs系列教程(less11-17)】sqli-labs_33_less17_哔哩哔哩_bilibili 我将SQL语句在页面中显示&#xff0c;以便更深入学习。 1.寻找注入点 修改密码的一个页面。 输入正确的账号密码&#xff0c;可以看到&#xff0c;账号为admin&#xf…

python内置函数dir()、divmod()详解

dir() 函数是 Python 中的一个强大的内置函数&#xff0c;它用于列出指定对象的有效属性和方法。它可以不带参数使用&#xff0c;以列出当前作用域中的名称&#xff0c;或者带一个对象作为参数&#xff0c;以列出该对象的属性和方法。让我们来看看它的用法和示例&#xff1a; …

PHP Storm 2024.1使用

本文讲的是phpstorm 2024.1最新版本激活使用教程&#xff0c;本教程适用于windows操作系统。 1.先去idea官网下载phpstorm包&#xff0c;我这里以2023.2最新版本为例 官网地址&#xff1a;https://www.jetbrains.com/zh-cn/phpstorm/ 2.下载下来后安装&#xff0c;点下一步 …

Qt5 编译oracle数据库驱动

库文件 1、Qt源码目录&#xff1a;D:\Qt5\5.15.2\Src\qtbase\src\plugins\sqldrivers\oci 2、oracle客户端SDK: https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html 下载各版本中的如下压缩包&#xff0c;一定要版本相同的 将两个压缩包…

第三十九节 Java Applet基础

applet是一种Java程序。它一般运行在支持Java的Web浏览器内。因为它有完整的Java API支持,所以applet是一个全功能的Java应用程序。 如下所示是独立的Java应用程序和applet程序之间重要的不同&#xff1a; Java中applet类继承了 java.applet.Applet类Applet类没有定义main()&…

使用 git 提交项目到 github

文章推荐&#xff1a;https://zhuanlan.zhihu.com/p/193140870 连接失败&#xff1a;https://zhuanlan.zhihu.com/p/521340971 分支出错&#xff1a;https://blog.csdn.net/gongdamrgao/article/details/115032436

性能升级,INDEMIND机器人AI Kit助力产业再蜕变

随着机器人进入到越来越多的生产生活场景中&#xff0c;作业任务和环境变得更加复杂&#xff0c;机器人需要更精准、更稳定、更智能、更灵敏的自主导航能力。 自主导航技术作为机器人技术的核心&#xff0c;虽然经过了多年发展&#xff0c;取得了长足进步&#xff0c;但在实践…

Vue3---基础5(computed和watch、watchEffect)

computed 计算属性 代码示例 <template><div class"person"><div>姓&#xff1a;<input type"text" v-model"firstName"></div><div>名&#xff1a;<input type"text" v-model"lastName…

Python的国际化和本地化【第162篇—国际化和本地化】

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 随着全球化的发展&#xff0c;多语言支持在软件开发中变得越来越重要。Python作为一种流行的…

Spark产生小文件的原因及解决方案

一、小文件的定义 Hadoop集群中的文件都是以块&#xff08;Block&#xff09;的形式存储在分布式文件系统&#xff08;HDFS&#xff09;中的&#xff0c;而Block的默认大小设置随着Hadoop的版本迭代经历了64MB、128MB、256MB&#xff0c;其大小实际受制于磁盘/网络的传输速率。…

EasyRecovery数据恢复软件2024百度云网盘下载链接

EasyRecovery数据恢复软件是一款功能强大的数据恢复工具&#xff0c;它能够帮助用户从各种存储设备中恢复丢失或误删除的文件数据。无论是由于意外删除、格式化、病毒攻击还是其他原因导致的数据丢失&#xff0c;EasyRecovery都能提供有效的解决方案。 该软件支持多种存储介质…

Java全栈开发前端+后端(全栈工程师进阶之路)【介绍】

Java全栈开发前端后端&#xff08;全栈工程师进阶之路&#xff09; 本次课程&#xff0c;从0到1讲解全栈开发 前端到后端&#xff0c;解决您的开发难题 课程如下&#xff1a; 第1阶段-课程介绍与环境搭建 前置课程&#xff1a; 1、HTML 2、JavaScript 3、CSS 4、Java基…

Redis实现延迟任务的几种方案

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 1.前言 2.Redis如何实现延迟任务&#xff1f; 3.代码实现 3.1. 过期键通知事…

针对MaxCompute优化案例分享

声明 原文来源&#xff1a;微信公众号&#xff1a;阿里云开发者 前言 MaxCompute 是阿里巴巴集团推出的一种大数据计算平台&#xff0c;用于处理海量数据和进行数据分析。它提供了高可靠性、高扩展性和高性能的数据处理能力&#xff0c;支持 SQL 查询、MapReduce 计算和机器…

初识ansible服务剧本playbook及剧本编写实例

目录 1、playbook剧本文件概念 1.1 剧本文件的结构由4部分组成 2、配置实例 实例1-编写一个实现批量安装mariadb数据库的剧本 实例2-编写一个创建一个目录/backup,并在目录喜爱创建01.txt文件的剧本 实例3-编写一个添加定时同步时间的定时任务剧本 错误反思 1、playbook剧…