预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共70页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第9章电子邮件协议与编程本章首先介绍电子邮件系统的构成和工作原理,然后分析简单邮件传送协议SMTP,接着叙述RFC822规定的纯文本电子邮件信件的格式,详细说明了MIME多媒体邮件格式扩展,分析了接收电子邮件的POP3邮局协议,最后给出了两个编程实例。通过本章的学习,应当充分认识应用层协议在网络编程中的重要性,可以说,网络编程就是应用层协议的实现。9.1电子邮件系统的工作原理9.1.1电子邮件的特点电子邮件(electronicmail,简称e-mail)是因特网上使用最多的一种应用,它为用户在因特网上设立了存放邮件的电子邮箱,发信人可以随时将电子邮件发送到收信人的电子邮箱,收信人也可以随时上网读取,发信人与收信人以异步的方式通信。9.1.2电子邮件系统的构成一个电子邮件系统包括三个主要的构件,即用户代理,邮件消息传输代理,和电子邮件使用的协议。如图9.1所示:9.1.3电子邮件系统的实现从以上的分析可以了解电子邮件系统的特点:①是一种异步的通信系统,不像电话,通话的双方都必须在场。②使用方便,传输迅速,费用低廉,不仅能传输文字信息,还能附上声音和图像。③在电子邮件系统的实现中,ISP的服务器必须7X24小时地不间断地运行,这样才能保证用户可以随时发送和接收信件,而发送或接收电子邮件的用户则随意。9.2简单邮件传送协议SMTP9.2.1概述简单邮件传送协议SMTP(SimpleMailTransferProtocol)是因特网的正式标准,最初在1982年由RFC821规定,目前它的最高版本是RFC2821。SMTP协议采用C/S模式,专用于电子邮件的发送,规定了发信人把邮件发送到收信人的电子邮箱的全过程中,SMTP客户与SMTP服务器这两个相互通信的进程之间应如何交换信息。即规定了SMTP的会话过程。用户直接使用的是用于编写和发送的客户端软件,而通常的SMTP服务器运行在远程站点上。客户/服务器之间的通信是通过TCP/IP协议进行的。9.2.2SMTP客户与SMTP服务器之间的会话1.SMTP会话如图9.3,说明了SMTP客户与SMTP服务器之间的会话2.SMTP命令一般是客户主动,首先发送。SMTP客户发往SMTP服务器的信息称为SMTP命令。在RFC821中,SMTP协议规定了14种命令。SMTP命令的一般的格式是:命令关键字参数<CRLF>其中,命令关键字一般是四个字母,是一个英文动词的缩写。参数随命令而异,命令应当以回车换行符结束。比如HELOWANG<CRLF>3.SMTP应答SMTP服务器收到命令后,返回给SMTP客户的信息,称为SMTP应答。客户每次发送一条SMTP命令后,服务器给客户返回一条响应。SMTP规定了23种响应码。SMTP应答都是以一个响应码开头,后面接着响应的描述信息,如果SMTP服务器不一样,响应的描述信息可能不一样,SMTP应答的一般格式是:响应码响应的文本描述信息其中,响应码为3位数字,与描述信息文本之间有一个空格,9.2.3常用的SMTP命令1.SMTP客户问候SMTP服务器命令格式:HELO发送方的主机名<CRLF>2.邮件来自何处,说明发信人的电子邮件地址命令格式:MAILFROM:发信人的电子邮件地址<CRLF>3.说明收信人的电子邮件地址命令格式:RCPTTO:收信人的电子邮箱地址<CRLF>4.请求发送邮件内容命令格式:DATA<CRLF>5.空操作命令格式:NOOP<CRLF>6.验证电子信箱是否合法命令格式:VRFY电子信箱地址<CRLF>7.复位SMTP服务器命令格式:RSET<CRLF>8.请求服务器发回帮助信息命令格式:HELP<CRLF>或者HELP命令关键字<CRLF>9.退出会话命令格式:QUIT<CRLF>9.2.4常用的SMTP响应码211系统状态或系统帮助应答。214帮助信息220服务就绪。221服务器关闭传输通道。250请求的邮件操作已经完成。251用户不是本地的,将按照前向路径(forwaed-path)转发。354启动邮件输入,要求邮件文本要用两个<CRLF>结束。421服务不可使用,关闭传输通道。450没有执行请求的邮箱操作,因为信箱不可用。451请求的操作已经终止,因为在处理的过程中出现了错误。452请求的操作没有发生,因为系统的存储空间不够,500语法错误,命令不可识别。501参数或变元中存在着语法错误。502命令不能实现。503错误的命令序列504命令的参数不能实现。550请求的操作不能发生,信箱不可用。551用户不在本地,请尝试发送到前向路径(forwaed-path)。552请求的邮件操作终止,超出存储分配。553请求的操作不能执行,因为信箱语法错误。554事务失败。9.2.5SMTP的会话过程SMTP客户与SMTP服务器的会话过程分为三个阶