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

server/2024/9/20 13:31:14/ 标签: 计算机网络

电子邮件

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.ppmy.cn/server/2795.html

相关文章

【python实战】-- 按指定字符生成密码字典并测试打开word

系列文章目录 文章目录 系列文章目录前言一、生成密码字典1.python程序 二、测试打开Word1.python程序 总结 前言 一、生成密码字典 1.python程序 代码如下(示例): import string# 定义密码字符集,这里以小写字母为例 #all_char…

pytorch环境配置踩坑记录

一、问题1 1.执行命令 conda create -n pytorch python3.62.报错如下 Solving environment: failedCondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/msys2/noarch/repodata.json.bz2> Elapsed: -An HTTP error occurred when tr…

可视化ETL解决方案:Apache NiFi、DataX(加上DataX-Web)、Kettle这3个解决方案对比

1.Apache NiFi&#xff1a; Apache NiFi是一个易于使用、功能强大的可视化ETL工具&#xff0c;它提供了一套直观的图形界面&#xff0c;让用户可以轻松地设计、管理和监控数据流。NiFi支持多种数据源和目标系统&#xff0c;具有强大的数据处理能力&#xff0c;如数据过滤、转换…

Idea与Maven版本不一致问题

Idea拉取Jar包&#xff0c;报Unable to import maven project: See logs for details 查看日志信息No implementation for org.apache.maven.model.path.PathTranslator was bound 具体错误详情&#xff1a; IDEA执行Maven报错 Unable to import maven project: See logs f…

使用Docker搭建一主二从的redis集群

文章目录 一、根据基础镜像构建三个docker容器二、构建master机三、配置slave机四、测试 本文使用 主机指代 物理机、 master机指代“一主二从”中的 一主&#xff0c; slave机指代“一主二从”中的 二从 一、根据基础镜像构建三个docker容器 根据本文第一章&#xff08…

MIMO(多天线)通信的四种译码算法

目录 一. 介绍 二. 极大似然译码 三. 破零译码算法 四. 最小均方误差算法 五. 球形译码 一. 介绍 发射天线数记为Mt&#xff0c;接收天线数记为Mr。由此发射信号x为向量&#xff1a; 接受信号y为向量&#xff1a; 信道H为矩阵&#xff1a; 利用n代表噪声向量&#xff0c;…

【Web】2022DASCTF Apr X FATE 防疫挑战赛 题解(全)

目录 warmup-php soeasy_php warmup-java warmup-php spl_autoload_register函数实现了当程序遇到调用没有定义过的函数时&#xff0c;会去找./class/函数名.php路径下的php文件&#xff0c;并把它包含在程序中。 拿到附件拖进Seay里自动审计一下 显然利用终点为evaluateExp…

探索 IntelliJ IDEA 2024.1最新变化:全面升级助力编码效率

探索 IntelliJ IDEA 2024.1最新变化&#xff1a;全面升级助力编码效率 文章目录 探索 IntelliJ IDEA 2024.1最新变化&#xff1a;全面升级助力编码效率摘要引言 IntelliJ IDEA 2024.1 最新变化关键亮点全行代码补全 Ultimate对 Java 22 功能的支持新终端 Beta编辑器中的粘性行 …

用html写文本变形动画

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>文本变形动画</title><link rel"stylesheet" href"./style.css"> </head> <body> <!-- 两个文本部分…

oracle 19c数据库W00n进程使用很多PGA内存资源的分析

今天&#xff0c;客户反馈测试环境的数据库PGA资源不足&#xff0c;报错ORA-04036: 实例使用的 PGA 内存超出 PGA_AGGREGATE_LIMIT&#xff1b;分析是多个W00n进程使用大量PGA-触发了BUG&#xff0c;对应解决办法就是打补丁。&#xff08;民间办法就是KILL进程、重启数据库&…

微服务架构中的业务解耦设计

目录 业务解耦的原则 单一责任原则 松耦合原则 业务解耦的实现方法 业务解耦的优势 微服务架构中的业务解耦设计案例 背景 业务解耦设计 服务拆分 商品服务 订单服务 用户服务 支付服务 物流服务 通信机制 数据一致性 具体实现 商品服务 订单服务 用户服务…

锂电池寿命预测 | Matlab基于GRU门控循环单元的锂电池寿命预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 锂电池寿命预测 | Matlab基于GRU门控循环单元的锂电池寿命预测 Matlab基于GRU的锂电池剩余寿命预测 基于GRU的锂电池剩余寿命预测&#xff08;单变量&#xff09; 运行环境Matlab2020及以上 锂电池的剩余寿命预测是…

SVN修改已提交版本的注释

目录 一、需求分析 二、问题分析 三、解决办法 一、需求分析 ​开发过程中&#xff0c;在SVN提交文件后&#xff0c;发现注释写的不完整或不够明确&#xff0c;想再修改之前的注释文字​。 使用环境&#xff1a; SVN服务器操作系统&#xff1a;Ubuntu 20.04.6 LTS SVN版本&…

MongoDB的go SDK使用集锦

在上一章解读MongoDB官方文档获取mongo7.0版本的安装步骤与基本使用介绍了如何使用mongo shell操作mongo数据库&#xff0c;接下来介绍如何使用sdk来操作数据库&#xff0c;这里以go语言为例&#xff0c;其他语言请查看源文档mongo docs Quick Start 内置数据结构 MongoDB是存…

Java 变得越来越像 Rust?

随着编程技术的增强和复杂性的提升&#xff0c;许多编程语言也纷纷效仿&#xff0c;Java 也不例外。 另一边&#xff0c;尽管社区内部问题重重&#xff0c;但 Rust 仍逐年获得开发人员的喜爱。这背后都是有原因的&#xff1a;Rust 的编译器让开发人员避免了各种问题。编译器对…

【MIT6.824】lab2C-persistence, lab2D-log compaction 实现笔记

引言 lab2C的实验要求如下 Complete the functions persist() and readPersist() in raft.go by adding code to save and restore persistent state. You will need to encode (or “serialize”) the state as an array of bytes in order to pass it to the Persister. Us…

设计模式系列:适配器模式

简介 适配器模式&#xff08;Adapter Pattern&#xff09;又称为变压器模式&#xff0c;它是一种结构型设计模式。适配器模式的目的是将一个类的接口转换成客户端所期望的另一种接口&#xff0c;从而使原本因接口不匹配而不能一起工作的两个类能够一起工作。 适配器模式有两种…

论软件系统的架构风格,使用三段论 写一篇系统架构师论文

软件系统的架构风格是指在软件系统设计与开发过程中&#xff0c;采用的一组相互协调的设计原则、模式和实践。这些风格不仅影响着系统的技术实现&#xff0c;还关乎到系统的可维护性、可扩展性和可靠性等关键质量属性。通过三段论的结构&#xff0c;本文旨在探讨软件系统架构风…

数据结构之单链表的相关知识点及应用

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构 目录 链表的概念及结构 链表与顺序表的区别与优劣势 链表的分类 单链表的实现 单链表中增加节点 单链表中尾插数据 打印单链…

【Web】Dest0g3 520迎新赛 题解(全)

目录 phpdest EasyPHP SimpleRCE funny_upload EasySSTI middle PharPOP ezip NodeSoEasy Really Easy SQL&easysql EzSerial ljctr phpdest 尝试打pearcmd&#xff0c;但似乎没有写文件的权限 ?config-create/&file/usr/local/lib/php/pearcmd.php&a…