【计算机网络】因特网中的电子邮件


电子邮件为异步通信媒介
因特网电子邮件系统
image.png
image.png
电子邮件系统的三个构件:用户代理、邮件服务器、邮件发送和读取协议
用户代理
User Agent 即UA
电子邮件客户端软件,用户与电子邮件系统的接口,如Apple Mail、Outlook
功能:实现邮件的撰写、显示、处理、通信
邮件服务器
Mail Server,邮件传输代理
功能:发送和接收邮件,向发信人报告邮件传送的情况,客户服务器模式
邮件发送和读取协议
简单邮件发送协议 SMTP:在UA向邮件服务器、邮件服务器之间发送邮件
邮局协议POP3:UA从邮件服务器读取邮件
注意

  1. 邮件服务器在电子邮件系统中是同时充当了客户和服务器两个角色,在UA向Mail Server发送邮件过程中Mail Server充当服务器,在该Mail Server发送邮件时充当客户端,在该Mail Server接收邮件时充当服务器。每台邮件服务器上既运行SMTP的客户端也运行SMTP的服务器端。
  2. SMTP和POP3(或IMAP)协议都使用TCP连接实现邮件可靠传输
  3. 邮件不会在互联网中的某个中间邮件服务器落地

举个例子
发送方Alice发电子邮件给接收方Bob
Alice撰写邮件,其UA向对应的Mail Server发送邮件,邮件被放在该Mail Server的外出报文队列中,Alice的Mail Server将邮件传输到Bob的Mail Server,邮件被分发到Bob的邮箱,当Bob要阅读邮件时,Bob的UA在其Mail Server的邮箱中取得该邮件。
术语说明
报文队列(message queue):存放从该Mail Server发送的邮件,若邮件在发送方Mail Server到接收方的Mail Server之间的传送失败,发送方的Mail Server将尝试重新发送。若一段时间后仍不能发送成功,则发送方Mail Server将删除该报文并将以电子邮件的形式通知发送方
邮箱(mailbox):每个接收方(如Bob)在对应的邮件服务器上有一个邮箱(mailbox),mailbox管理和维护着发送给接收方的报文
电子邮件
组成:由信封 (envelope) 和内容 (content) 两部分组成
envelope是电子邮件传输协议传送邮件的依据
地址格式:收件人邮箱名@邮箱所在主机的域名
举个例子
image.png

简单邮件传送协议SMTP

基本介绍
SMTP协议规定了在两个相互通信的 SMTP 进程之间建立TCP连接交换信息的方法,使用客户端服务器方式
通信三阶段
image.png

分析报文通过SMTP协议从发送方Mail Server到接收方Mail Server的传送过程

  1. 连接建立:包括建立TCP连接和SMTP连接的握手阶段
  2. 邮件传送:传送内容包括信封、首部、空行和邮件主体
  3. 连接释放:客户SMTP传送完所有报文后,释放TCP连接(这里的TCP连接是持久的)

建立TCP连接
三次握手
image.png
SMTP握手阶段
客户SMTP使用HELO命令,指示发送方主机名
服务器SMTP回答:“250 OK” ,表示已准备好接收。
image.png

邮件传送阶段
报文结束标志为回车换行.回车换行
image.png
连接释放
image.png

注意
SMTP用的是持续TCP连接,从同一个发送Mail Server到同一个接收Mail Server的报文可以通过同一个TCP连接发送。报文以MAIL FROM: xx作为开始标志

尝试SMTP通信
使用telnet命令
多媒体数据传输
更改电子邮件的内容部分
在首部中说明MIME-Version,数据编码格式,多媒体文件格式等信息
image.png
举个具体的例子
image.png
SMTP与HTTP对比
相同点:

  1. 作用:用于从一台主机向另一台主机传送文件。HTTP从Web服务器向Web客户传送文件;SMTP从一个邮件服务器向另一个邮件服务器传送文件。
  2. 文件传送过程中二者使用的都是持续的TCP连接进行可靠数据传输
  3. 二者都是应用层协议

不同点:

  1. HTTP是一个拉协议(pull protocol),用户使用使用客户端从服务器拉取数据,TCP连接是由想接收文件的机器发起的。SMTP是一个推协议(push protocol),发送邮件服务器把文件推向接收邮件服务器,TCP连接是由要发送该文件的机器发起的。
  2. SMTP协议要求报文数据采用7比特ASCII码格式。
  3. 对于包含多种数据类型的文档的处理。HTTP把每个对象封装到它自己的HTTP响应报文中,而SMTP则把所有报文对象放在一个报文之中。

关于客户Mail Server和服务器Mail Server的讨论
若接收方的Mail Server和UA都位于其PC上,则其PC必须不间断地运行着并一直保持在线,这并不现实。因此通常情况下,Mail Server是共享的且由用户的ISP进行维护,本地PC上运行UA
发送方Mail Server的引入解决了发送方UA无法到达一个不可达的目的地Mail Server的问题,即发送方的Mail Server可以重复尝试向接收方Mail Server发送报文直到接收方Mail Server变得可运行

邮件访问协议

引入原因
接收方从Mail Server上的邮箱取得邮件是一个拉操作,而SMTP是一个推协议,这是不能完成的。
需要引入一个能完成拉操作的协议,即邮件访问协议
邮件访问常用协议

  1. 第三版的邮局协议(PostOffice Protocol—Version 3 , POP3)
  2. 因特网邮件访问协议(Internet Mail Access Protocol,IMAP)
  3. HTTP协议
    image.png

POP3

使用客户服务器方式,基于TCP实现通信
用户代理(客户)打开一个到邮件服务器(服务器)端口 110上的TCP连接
工作的三个阶段

  1. 特许(authorization):UA发送(以明文形式)用户名和口令以鉴别用户。命令包括user < user name >pass < password >
  2. 事务处理:UA取回报文、对指定报文做删除标记、获取邮件的统计信息。命令包括listretrdele
  3. 更新:当用户发出quit命令结束POP3会话之后,Mail Server将删除被标记为删除的报文

IMAP

使用客户服务器方式,基于TCP实现通信,端口143,这是一个联机协议
提出原因
解决POP3不能在远程服务器上建立层次文件夹等问题
特点

  1. IMAP服务器把每个报文与一个文件夹联系起来,能够实现用户在远程Mail Server上创建文件夹、移动文件、阅读查询删除文件
  2. 允许UA只获取报文某些部分。举个例子,一个用户代理可以只读取一个报文的报文首部
  3. 要想查阅邮件,必须先联网

HTTP

使用Web浏览器作为UA,进行邮件收取和邮件发送
于是电子邮件报文可以使用HTTP协议而非STMP协议从发送方UA发送到发送方Mail Server,使用HTTP协议而非POP3或者IMAP协议从接收方Mail Server拉取到接收方UA
image.png
使用 HTTP POST方法提交要发送的邮件
使用 HTTP GET 方法读取邮件
传统UA和基于Web的UA比较
传统UA必须在计算机中安装用户代理软件且收发邮件不方便
基于Web的UA不需要在计算机中再安装用户代理软件,只要计算机能联网就能非常方便地收发电子邮件

参考资料

  1. James F.Kurose&Keith W.Ross Computer Networking A Top-Down Approach(7th ed) 中文版
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值