夜光:计算机网络笔记(十)

夜光序言:

 

 

终于明白坚强不是过场的表演

不是临时凑来的戏面

所谓的坚强不为别人可怜的安慰

不畏别人嘲讽的眼神

坚强

不为别人

不是给别人看的

坚强

终归是自己内心的重甲

深锁紧紧扣住血肉

锁间绽放的皮肉似是盛开的罂粟花

美丽

麻痹

美好的让你爱着

痛并快乐着

是自己送给自己的礼物

 

 

 

 

 

 

 

 

 

正文:

 

因特网中的电子邮件
1 电子邮件系统
电子邮件系统有 3 个主要组成部分: 


用户代理( uses agent) ,邮件服务器(mail server)和简单邮件传输协议(Simple Mail Transfer Protocol)。

用户代理就是邮件客户端允许用户阅读、回复、转发、保存和撰写邮件。可以认为 Web浏览器也是一种用户代理,因为现在很多人都使用浏览器处理邮件。

邮件服务器组成了电子邮件体系结构的核心。每个接收方在他的邮件服务器上有一个邮箱,邮箱管理和维护用户接收到的邮件。

一个典型的邮件发送过程是从发送方的用户代理开始的,传输到发送方的邮件服务器,再传输到接收方的邮件服务器,然后在这里被分发到接收方的邮箱中。当接收方在他的邮箱中访问邮件时,接收方邮件服务器会鉴别用户的身份(使用用户名和口令)。 


发送方服务器不能将邮件交付到接收方服务器时,会在一个消息队列中保持该邮件并在以后尝试再次发送。通常每 3 分钟左右进行一次尝试,如果几天后仍不能成功,服务器删除该邮件并以电子邮件的形式通知发送方。

SMTP 是因特网电子邮件应用的核心。

SMTP 用于从发送方的邮件服务器发送邮件到接收方的邮件服务器。


SMTP 限制所有邮件消息的主体部分(不仅是其首部)只能采用简单的 7 位 ASCll 码表示。 


在用 SMTP 传送邮件之前,需要将二进制多媒体数据编码为 ASCll 码,并且在使用 SMTP 传送后需要将相应的 ASCll 码邮件解码还原为多媒体数据。


SMTP 一般不使用中间邮件服务器发送邮件。
 



SMTP 客户机和服务器的一次交互
>telnet smtp.163.com 25 
 S: 220 163.com 
 C: HELO localhost
 S: 250 OK
 C: AUTH LOGIN //使用身份认证登陆指令
 S: 334 dXNlcm5hbWU6
 C: cmVkc29zMw== //输入已经 base64_encode()的用户名
 S: 334 UGFzc3dvcmQ6
 C: MbM2MDQ3NQ== //输入已经 base64_encode()的密码
 S: 235 Authentication successful
 C: MAIL FROM: <alice@163.com> 
 S: 250 alice@crepes.fr... Sender ok 
 C: RCPT TO: <alice@163.com> 
 S: 250 alice@163.com ... Recipient ok 
 C: DATA

S: 354 Enter mail, end with "." on a line by itself 
 C: Do you like ketchup? 
 C: How about pickles? 
 C: . 
 S: 250 Message accepted for delivery 
 C: QUIT 
 S: 221 hamburger.edu closing connection

 

 SMTP 用的是持久连接,如果发送邮件服务器有几个邮件发往同一个接收邮件服务器,它可以通过同一个 TCP 连接发送所有这些邮件。对每个邮件,客户机都用一个新的 MAIL FROM 开始,用一个独立的句点指示该邮件的结束,并且仅当所有邮件发送完后才发送 QUIT。
 

 



2 与 HTTP 的对比【很帅气】

 


SMTP 和 HTTP 这两个协议都用于从一台主机向另一台主机传送文件。

HTTP 从 Web 服务器向、浏览器、传送文件(也称为对象),SMTP 从一个邮件服务器向另一个邮件服务器传送文件(即电子邮件)。

当进行文件传送时,持久 HTTP 和 SMTP 都使用持久连接。

区别首先在于 HTTP 是一个拉协议,用户使用它从该服务器拉取信息。SMTP 基本上是一个推协议,即发送邮件服务器把文件推向接收邮件服务器。特别是,这个 TCP 连接是由要发送文件的机器发起的。

第二个区别就是我们前面间接提到过的,SMTP 要求每个消息(包括它们的主体)都使用7 位 ASCII 码格式。HTTP 数据则没有这个限制。

第三个重要区别在于如何处理一个既包含文本又包含图形的文件,HTTP 把每个对象封装到单独的 HTTP 响应消息中,而电子邮件则把所有消息对象放在一个消息之中

最后一个重要区别是 HTTP 使用带内控制,而 SMTP 使用带外控制。

 



3 邮件消息格式和 MIME


电子邮件的每个首部行都包含了可读的文本,它们是由关键词后跟冒号、值组成的。

某些关键词是必需的,有些则是可选的。

每个首部都必须含有一个 From:首部行和一个 To:首部行,可以包含一个 Subject:首部行或者其他可选的首部行。

在邮件首部之后,紧接着是一个空白行,然后是以 ACII 格式表示的邮件主体。

非 ACCII 码数据的 MIME 扩展
多用途因特网邮件扩展(Multipurpose Internet Mail Extension, MIME)是对电子邮件格式的扩展。

支持多媒体的两个关键首部是 Content-Type 和 Content-transfer-Encoding。

Content-Type:首部允许接收用户代理对邮件采取适当的动作。例如,通过它指出消息主体包含一个图形,接收用户代理可以为消息主体启用一个图形的解压缩程序。

Content-transfer-Encoding:首部行提示接收用户代理该消息主体已经使用了 ASCII 编码,并指出了所用的编码类型。因此,当用户代理接收到包含这两个首部行的邮件时,就会根据

Content-transfer-Encoding 的值将邮件主体还原成非 ASCII 的格式。
 

 



 4 邮件访问协议

 

一旦 SMTP 将邮件从发送方的邮件服务器交付给接收方的邮件服务器,该邮件就被放入了收件人的邮箱中。

用户可以通过在用户端系统上运行一个用户代理(电子邮件客户端)来阅读电子邮件。

目前有多个流行的邮件访问协议,包括第三版的邮局协议(Post Office Protocol Version3,POP3)、因特网邮件访问协议(Internet Mail Access Protocol,IMAP)以及 HTTP。



 •POP3


POP3 是一个非常简单的邮件访问协议,其功能相当有限。

当用户代理(客户机)打开了一个到邮件服务器(服务器)端口 110 上的 TCP 连接后,POP3就开始工作了。

POP3 按照三个阶段进行工作:认证(authorization),事务处理以及更新。在第一个阶段,即特许阶段,用户代理发送(以明文形式)用户名和口令以鉴别用户。在第二个阶段,即事务处理阶段,用户代理取回邮件,在这个阶段,用户代理还能进行如下操作;对邮件做删除标记,取消邮件删除标记,以及获取邮件的统计信息。在第三个阶段,即更新阶段,现在客户机发出了 quit 命令之后,目的是结束该 POP3 会话;这时,邮件服务器删除那些被标记为删除的邮件。
 


 

特许阶段有两个主要的命令:user<user name>和 pass<password>。
事务处理过程。使用 POP3 的用户代理通常由用户配置为“下载并删除”或者“下载并保留”方式。

 

在下载并删除方式下,用户代理发出 list,retr 和 dele 命令。用户代理从邮件服务器取回每封邮件并删除它们在服务器上的备份。

 

当邮件接收方希望从多个不同的机器访问他的邮件,如从办公室的 PC、家里的 PC 或他的便携机来访问邮件。下载并删除方式会给收件人带来很多不方便。

 

 



 •IMAP

因特网邮件访问协议(IMAP)比 POP3 具有更多的特色,因此更加复杂。

IMAP 服务器把每个邮件与一个文件夹联系起来,当邮件第一次到达服务器时,它是放在收件人的收件箱文件夹里。收件人则可以把邮件移到一个新的、用户创建的文件夹中,或阅读邮件、删除邮件等。

IMAP 协议为用户提供了创建文件夹以及在文件夹之间移动邮件的命令. 它还为用户提供了在远程文件夹中查询邮件的命令,按指定条件去查询匹配的邮件。

与 POP3 不同的是,IMAP 服务器维护了 IMAP 会话的用户状态信息,例如,文件夹的名字以及哪个邮件与哪个文件夹相关联。

IMAP 的另一个重要特性是它具有允许用户代理获取邮件组件的命令。

 

例如,用户代理可以只读取一个邮件首部。

 



•基于 Web 的电子邮件


越来越多的用户使用他们的 Web 浏览器收发电子邮件。
基于 Web 的电子邮件,用户代理就是普通的浏览器,用户和其远程邮箱之间的通信则通过 HTTP 进行。当一个收件人想从他的邮箱中取一个邮件时,该电子邮件从邮件服务器发送到他的浏览器,使用的是 HTTP 而不是 POP 或者 IMAP 协议。当发件人要发送一封电子邮件时,使用的也是 HTTP 而不是 SMTP。

 

但是,用户的邮件服务器在与其他的邮件服务器之间发送和接收邮件时,仍然使用 SMTP。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值