1 构成组件

  邮件客户端

  邮件服务器

  SMTP协议 Simple Mail Transfer Protocol

1.1 邮件客户端

  读写Email消息

  和服务器交互,收发消息

1.2 邮件服务器

  邮箱:每位用户都有一个邮箱,存储发给该用户的Email

  消息队列:存储等待发送的Email

1.3 SMTP协议(RFC2881)

  邮件服务器之间传递消息所使用的协议

  客户端:发送消息的服务器

  服务端:接受消息的服务器

2 为什么采用这种架构

  为什么不直接从发送端到接收端,而要通过服务器?

    1)不能保证接收端一直在线

    2)如果对方不在线,那么发送端就得不断重试,发送端也不能关闭,知道成功发送

3 传输层协议

  采用TCP(保证数据的可靠性)进行Email消息的可靠传输

4 Email其他说明

  1)端口25

  2)传输过程的三个阶段

    握手

    消息传输

    关闭

  3)采用命令/响应交互模式

    命令:ASCII文本(由于Email出现很早,最初设计,Email只能包含7位ASCII码)

    响应:状态码和语句

  4)它是异步的

5 SMTP交互示例

  

    服务器:220 这里是hamburger.edu服务器

  客户端:这里是crepes.fr

  服务器:250 很高兴见到你

  客户端:邮件发送者是<alice@crepes.fr>

  服务器:250 发送者没问题

  客户端:接受者<bob@hamburger.edu>

  服务器:250 接受者没问题

  客户端:我要开始发送了

  服务器:354 可以,.表示结束

  客户端:邮件内容....

  客户端:邮件内容....

  客户端:. 结束

  服务器:250 我接受到了邮件

  客户端:好的,结束

  服务器:221 连接已断开

6 手动尝试SMTP交互

  使用telnet软件

7 SMTP的特点

  使用持久性连接

  要求消息体必须由7位ASCII码构成

  SMTP服务器利用CRLF.CRLF确定消息的结束

8 和HTTP简要对比

  HTTP:拉式(网页去找服务器要资源)   SMTP:推式(服务器推送邮件到客户端)

  都使用命令/响应交互模式

  命令和状态码都是ASCII码

  HTTP:每个对象封装在独立的响应消息中

  SMTP:多个对象在由多个部分构成的消息中发送

9 SMTP协议中消息格式

  分为头部行和消息体

   头部行包括发送者和接受者,邮件标题

   消息体包含消息本身

10 MIME(多媒体邮件扩展协议)

  由于消息体只能是ASCII字符,那么图片视频等文件怎么发送呢?

  这就用到了MIME:多媒体邮件扩展协议(RFC 2045,2056)

  通过在邮件头部增加额外的行以申明MIDE的内容类型

  

11 邮件访问协议

    

  发送端发送邮件(SMTP)到达发送者邮件服务器,然后到达(SMTP)接受者邮件服务器,最后从接收者服务器到达接受者,这里不是采用的SMTP,而是邮件访问协议

  邮件访问协议:

    POP:Post Office Protocol

    IMAP:iNTERNRT mAIL Access Protocol

    HTTP:基于浏览器收发邮件时

1)POP3协议

  允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的 。很明显POP是无状态的

2)IMAP

  提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。同时,IMAPPOP3那样提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。此外,IMAP 更好地支持了从多个不同设备中随时访问新邮件。IMAP是有状态的

计算机网络基础06-Email应用的更多相关文章

  1. javaSE基础06

    javaSE基础06 一.匿名对象 没有名字的对象,叫做匿名对象. 1.2匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值的,无法获取属性值(现阶段只能设置和拿到一个属性值.只能调用一次方 ...

  2. javascript基础06

      javascript基础06 splice var del_arr = del.splice(0,2); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返 ...

  3. 计算机网络基础——OSI七层网络模型

    计算机网络基础——OSI七层网络模型 OSI的是什么: 开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI),简称 ...

  4. 转帖--计算机网络基础知识大总汇 https://www.jianshu.com/p/674fb7ec1e2c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

    计算机网络基础知识大总汇 龙猫小爷 关注 2016.09.14 23:01* 字数 12761 阅读 30639评论 35喜欢 720 一.什么是TCP/IP 网络和协议 1.     TCP/IP是 ...

  5. socket编程之中的一个:计算机网络基础

    在開始学习网络之前先复习下计算机网络基础吧. 鲁迅说,天下文章一大抄.看你会炒不会炒,基础知识就抄抄书吧. 一 分层模型 1 为什么分层 为了简化网络设计的复杂性.通讯协议採用分层结构.各层协议之间既 ...

  6. Flask基础(06)-->视图常用逻辑

    Flask基础(06)-->视图常用逻辑 返回json 重定向:url_for 自定义状态码 返回json:在使用 Flask 写一个接口时候需要给客户端返回 JSON 数据,在 Flask 中 ...

  7. 计算机网络基础笔记 运输层协议UDP/TCP

    目录 UDP 首部结构 主要特点 TCP 首部结构 主要特点 TCP 可靠性实现 停止等待ARQ协议 连续ARQ协议&滑动窗口协议 拥塞控制 TCP 运输连接管理 连接建立:三次握手 连接释放 ...

  8. Python网络编程基础 ❶ 计算机网络基础 初用socket模块

    1.计算机网络基础 C/S  客户端/服务器端 B/S  浏览器端/服务器端 mac地址,ip地址,子网掩码,与计算得到网段,端口号每台计算机的网卡都有全球唯一的地址,在生产时已经写进去了. ip地址 ...

  9. 计算机网络基础之IP地址详解

    计算机网络基础之IP地址详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.IP地址概述 1>.什么是IP地址 我们为什么要使用逻辑地址(IP地址)来标识网络设备,而不采 ...

  10. 计算机网络基础之TCP/IP 协议栈

    计算机网络基础之TCP/IP 协议栈 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.TCP/IP 协议栈概述 1>.什么是TCP/IP协议栈 Transmission C ...

随机推荐

  1. 【云原生 · Kubernetes】Taint和Toleration(污点和容忍)

    个人名片: 因为云计算成为了监控工程师‍ 个人博客:念舒_C.ying CSDN主页️:念舒_C.ying Taint和Toleration(污点和容忍) 概念 添加多个tainit(污点) 使用例子 ...

  2. 使用c#的 async/await编写 长时间运行的基于代码的工作流的 持久任务框架

    持久任务框架 (DTF) 是基于async/await 工作流执行框架.工作流的解决方案很多,包括Windows Workflow Foundation,BizTalk,Logic Apps, Wor ...

  3. Mybatis——Plus :表与表之间的关系:1对多和多对一

    Mybatis--plus我大致整理出两种方案: 第一种:第三方mybatis-plus 插件,注解式开发 Mybatis-Plus-Relation ( mprelation ) : mybatis ...

  4. GO开发工具litelDE的安装与使用

    1.MinGW的下载与安装 地址:http://sourceforge.net/projects/mingw/ 下载安装 D:\Program Files\MinGW 然后打开D:\Program F ...

  5. Python爬虫爬取彼岸网4K Picture

    深夜爬取4k图片 下载流程 定义page_text函数,对第一页地址发送get请求,因为页面数据在页面源代码都能查到,所以发送get 请求就ok!,注意:要进行编码格式设置,可以去源代码查看, 定义p ...

  6. 【软考-中级-其他】03、NoSQL和云计算

    其他 NoSQL概述 分类 文档存储数据库:MongoDB 采用BSON格式完成存储数据和网络数据交换 BSON格式:JSON的二进制编码格式 逻辑结构包括:数据库.集合(相当于关系数据库的表).文档 ...

  7. MyBatis详解(二)

    前言 本篇幅是继 MyBatis详解(一)的下半部分. MyBatis执行Sql的流程分析 [1]基于前面已经将XML文件进行build解析了并且返回了SqlSessionFactory [1.1]那 ...

  8. Linux NTP工具的基本使用

    NTP 时间同步 NTP(Network Time Protocol)协议,网络时间协议.利用ntp协议可以实现网络中的计算机时间同步. 实现NTP协议的工具: ntpdate:只能同步一次时间 nt ...

  9. UVA439 Knight Moves

    原题Vjudge 题目大意 有一个骑士,他可以骑马日字型跳跃,问他从A点到B点最少要几步 解题思路 这题就是一个特别裸的广搜板子 它的主要问题在于输入输出 输入的数据我们可以用\(pair\)读入,第 ...

  10. vulnhub靶场之GROTESQUE: 3.0.1

    准备: 攻击机:虚拟机kali.本机win10. 靶机:Grotesque: 3.0.1,下载地址:https://download.vulnhub.com/grotesque/grotesque3. ...