电子邮件应用编程要点课件

上传人:无*** 文档编号:241635010 上传时间:2024-07-11 格式:PPT 页数:31 大小:308.50KB
返回 下载 相关 举报
电子邮件应用编程要点课件_第1页
第1页 / 共31页
电子邮件应用编程要点课件_第2页
第2页 / 共31页
电子邮件应用编程要点课件_第3页
第3页 / 共31页
点击查看更多>>
资源描述
2024年7月11日广州大学Java网络编程主讲:刘淼1电子邮件应用编程电子邮件应用编程2024年7月11日广州大学Java网络编程主讲:刘淼2内容SMTP协议编程POP3协议编程学习目标明确两种协议的内容命令响应代码掌握邮件协议的应用编程模式,并能灵活运用2024年7月11日广州大学Java网络编程主讲:刘淼3概述概述电子邮件应用编程模式遵循传统的客户/服务器模式不同之处在传统的通信过程中,通信的主体是软件进程,通信过程中要建立通信连接,通信的两端都正在运行。在电子邮件通信中,通信的主体是人,发信人和收信人不可能保证同时在线,收信人也不可能总是用同一台机器收发邮件。2024年7月11日广州大学Java网络编程主讲:刘淼4概述概述因此,必须借鉴传统的信件通信模式。延迟递交模式。因特网上电子邮件通信过程见讲义图12024年7月11日广州大学Java网络编程主讲:刘淼5电子邮件消息格式电子邮件消息格式电子邮件消息格式采用文本字段定义电子邮件是供人阅读的由信封和电子邮件报文两部分构成电子邮件报文由报文头和消息主体构成报文头由一系列字段名称和相应取值构成消息主体就是实际发送的消息内容信封一般由MUA和MTA从报文头中抽取部分与传递邮件相关的字段内容构成电子邮件消息格式就是指电子邮件头字段名称、相应语义和编码格式2024年7月11日广州大学Java网络编程主讲:刘淼6电子邮件格式有RFC822格式和MIME(MultipurposeInternetMailExtensions)格式2024年7月11日广州大学Java网络编程主讲:刘淼7RFC822格式格式 名称的由来1982年,IETF发布了RFC821和RFC822文档。RFC821文档定义了SMTP协议,RFC822文档规定了电子邮件的格式。2001年,IETF发布了RFC2821文档和RFC2822文档,分别更新了RFC821和RFC822文档。由于前后两个定义电子邮件格式的RFC文档的编号后3位数都是822,所以这种电子邮件格式名称就称为RFC822格式。2024年7月11日广州大学Java网络编程主讲:刘淼8RFC822格式格式 RFC822格式规定电子邮件头和消息内容采用ASCII码编码方式,每行由回车(CR)和换行(LF)结尾,建议每行长度在80字符以内,最长不超过1000个字符,电子邮件头和消息内容用一个空行隔开。RFC822格式的头字段的名称及说明见下表2024年7月11日广州大学Java网络编程主讲:刘淼9字段名称说明Date必需。电子邮件的发送日期和时间。From必需。电子邮件作者的地址。Sender可选。发送电子邮件的地址。Reply-To可选。接收者的回复地址,缺省为From字段的值。To通常出现。接收者的邮件地址,可能有多个值。CC可选。抄送的邮件邮件地址,可能有多个值。Bcc可选。盲抄送的邮件邮件地址,可能有多个值。接收者和抄送者不知道电子邮件盲抄送的地址。Message-ID可选。电子邮件识别号,通常由MUA或MTA自动产生。In-Reply-To可选。当邮件为回复邮件时,该字段的值为被回复的邮件识别号。References可选。定义了与邮件相关的其它文档信息。Subject通常出现。邮件的主题信息。Comments可选。包含与该邮件相关的评论。Keywords可选。其值为逗号分隔的关键词,用于邮件查找。Resent*当重发邮件时必需。以Resent开头后接字段名,指重发时的相关字段信息。ReceivedReturn-Path由MTA自动插入,用来跟踪邮件经过的SMTP服务器。2024年7月11日广州大学Java网络编程主讲:刘淼10MIME格式格式为什么出现MIME格式?RFC822格式只能适用于纯英文形式的文本邮件当发送的信息或头字段的值包含有非英语文字,包含有图象、声音及可执行文件等其他文件形式时,怎么办?新的邮件格式是重新从零开始还是以RFC822格式为基础来定义新的格式呢?RFC822格式出现已经有很长时间了,许多邮件软件的开发都是以RFC822格式为基础,所以,新的格式最好采用ASCII来编码上述的非英语文字和多媒体等数据,这就是MIME,中文可读为多用途因特网邮件扩展。2024年7月11日广州大学Java网络编程主讲:刘淼11考虑到邮件的内容不会被MTA读取,只会由接收方的MUA读取。所以,可以在邮件内容中以ASCII方式来编码非英语文字及其他非文本信息,增加邮件头字段信息描述编码方式及包含的信息类型等信息。因此MIME格式增加了新的邮件头字段定义和编码方式的定义。2024年7月11日广州大学Java网络编程主讲:刘淼12编码方式编码方式 Base64编码:BASE64编码是使用最广的邮件编码格式,几乎所有的电子邮件软件头把它作为默认的二进制编码。将二进制流以24位为一组,每组分为4个6个二进位,每6个二进制位用ASCII码表示,这样,就把3个字节的信息表示为4个ASCII字符。若最后一组最后剩下的二进制位数不够6位,则在右边补0使之成6位;若最后一组不够4个ASCII字符时,用“=”填充,使之成4个ASCII字符。Base64采用65个ASCII字符来表示所有的数据。2024年7月11日广州大学Java网络编程主讲:刘淼13编码方式编码方式 对二进制流100100110010010001001100001000101000010进行Base64编码,首先划分为2组,第1组24位:100100,110010,010001,001100;第2组13位:001010,00010,最后只有5位,最右边补上一位0,使之成6位。第1组的Base64编码为:KYRM,第2组的Base64编码为KE=。2024年7月11日广州大学Java网络编程主讲:刘淼14编码方式编码方式 引用可打印(Quoted-Printable)编码:简称QP,一般用于邮件内容大量是ASCII码字符,只含有少量非ASCII字符的情况。QP编码规则:按字节编码。如果该字节最高位为0,则按ASCII码编码;如果最高位为1,则按3个ASCII字符编码,第1个字符为“=”,第2个字符是该字节高4位对应的十六进制数,第3个字符是该字节高4位对应的十六进制数;空格作为“=20”编码。2024年7月11日广州大学Java网络编程主讲:刘淼15编码方式编码方式 7bit数据编码:就是RFC822格式的ASCII编码方式。8bit数据编码:这是8位编码,非ASCII字符可以发送,必须由MTA和MUA提供支持。一般不推荐使用这种编码方式。2024年7月11日广州大学Java网络编程主讲:刘淼16MIME扩展头字段扩展头字段 1、MIME版本字段名:MIME-Version。这是唯一一个不以Content开头的字段,定义了MIME的使用版本,当前版本1.1。2、内容-类型字段名:Content-Type。定义了邮件内容所包含的数据类型和子类型,根据子类型的不同,还可包含一些参数,具体格式为:Content-Type:/;parameter1;parameter2.;parameterN2024年7月11日广州大学Java网络编程主讲:刘淼17类型名子类型名说明textplain无格式文本,与RFC822格式一致。enriched包含格式信息的文本。html网页文件。imagejpeg内容为jpeg类型的图片。gif内容为gif类型的图片。tiff内容为tiff类型的图片。audiobasic内容为基本类型的音频文件。mpeg内容为mpeg的音频文件。videompeg内容为mpeg的视频文件。dv符合流行的VCR标准的视频文件。applicationoctet-stream任意二进制数据。msword微软word文档。pdfAdobe pdf文档。zip压缩文档。multipart(多个正文部分)mixed各正文部分相互无联系,可顺序处理。alternative各正文部分有相同语义,但格式不同,可任取一个处理。parallel各正文部分可并行处理。encrypted第一部分包含加密的相关信息,第二部分包含加密数据。2024年7月11日广州大学Java网络编程主讲:刘淼183、内容传送编码字段名:Content-Transfer-Encoding:包含内容的编码类型,具体编码类型见上一小节。4、内容标识字段名:Content-ID:邮件的唯一标识。5、内容描述字段名:Content-Description:对邮件内容的描述信息,一般用ASCII码文本。2024年7月11日广州大学Java网络编程主讲:刘淼19如果在电子邮件头中包含非ASCII码字符,又如何处理呢?头字段名称:=?=字符集:指编码前的文本采用的字符集名称。编码方式:有2种取值,“B”指Base64编码方式,“Q”指引用可打印编码方式。编码后的字符:指非ASCII字符集合经过编码后的ASCII字符集合。2024年7月11日广州大学Java网络编程主讲:刘淼20SMTP协议协议 电子邮件从发送方的客户软件发送,经过发送方电子邮件帐号所在的邮件服务器,到达接收方邮件帐号所在的邮件服务器,整个传送过程都要使用SMTP协议。SMTP协议使用TCP协议提供的服务,它的周知端口号为25,RFC2821文档包含SMTP协议的最新定义。SMTP首先由发件方提出申请,要求与接收方SMTP建立双向的通信渠道,收件方可以是最终收件人也可以是中间转发的服务器。收件方服务器确认可以建立连接后,双发就可以开始通信。2024年7月11日广州大学Java网络编程主讲:刘淼21SMTP协议通信过程见讲义上的图2024年7月11日广州大学Java网络编程主讲:刘淼22常用命令和常见应答码命令使用形式说明HELO 域名 通知发送方的域名。MAIL FROM:回邮地址通知回邮地址。RCPT TO:接收地址通知接收地址。DATA准备发送邮件。RSET放弃此次邮件发送。VERY 邮件地址请求检查参数中的地址的有效性。EXPN邮件地址请求确认参数中的地址为邮件列表地址,返回列表中的邮件地址。HELP获取帮助信息。NOOP除了检查与服务器端的连接外,不做任何工作。QUIT终止会话。2024年7月11日广州大学Java网络编程主讲:刘淼23应答码应答信息说明220 Service ready.接受TCP连接请求。221 closing transmission channel.QUIT命令的应答,关闭传输通道。250Requested mail action okay,completed命令处理成功。354Start mail input;end with.DATA命令的应答,通知客户端已做好邮件接收准备工作。452Requested action not taken:insufficient system storage.由于服务器端外部存储空间不够,不能处理命令。500Syntax error,command unrecognized语法错误,无法识别的命令。2024年7月11日广州大学Java网络编程主讲:刘淼24SMTP客户软件举例Mail.javaSMTPClientDemo.javaSMTP服务器软件举例Receiver.java2024年7月11日广州大学Java网络编程主讲:刘淼25POP3协议编程协议编程POP协议全称协议全称Post Office Protocol,即邮,即邮局协议,用于电子邮件的接收,它使用局协议,用于电子邮件的接收,它使用TCP的的110端口进行通信。现在使用的是端口进行通信。现在使用的是第三版,简称为第三版,简称为POP3。2024年7月11日广州大学Java网络编程主讲:刘淼26POP3协议的通信过程协议的通信过程 POP3协议的通信基于传统的客户/服务器模式。POP3客户向POP3服务器请求建立TCP连接,服务器接受连接请求,建立连接,此时,POP3会话开始。POP3客户向服务器发送命令,服务器处理命令,向客户返回应答信息和处理结果。应答信息没有像SMTP协议那样有应答码,POP3应答信息以+OK或-ERR开头,后面跟描述信息。+OK是肯定应答,表示命令成功执行;-ERR是否定应答,表示在命令执行过程中出现错误。2024年7月11日广州大学Java网络编程主讲:刘淼27POP3会话状态转换图见讲义图3授权状态当POP3客户与服务器建立TCP连接后,服务器会发送肯定应答信息,进入授权状态,开始用户身份鉴别。客户端使用USER命令发送用户帐号名称,服务器端检查通过,传回肯定应答;接着,客户端使用PASS命令发送帐号密码,服务器端检查通过,传回肯定应答后,进入下一个状态事务状态。2024年7月11日广州大学Java网络编程主讲:刘淼28事务状态用户身份鉴别通过后,会话进入事务状态。在事务状态中,用户通过POP3客户软件发送各种命令,执行邮件读取任务。命令列表2024年7月11日广州大学Java网络编程主讲:刘淼29命令参数说明STAT无查询邮箱状态信息,通常会返回邮箱中的邮件数和所用存储空间。LIST邮件号(可选)列出指定邮件的邮件号和大小,缺省列出邮箱中所有邮件的邮件号和大小。RETR邮件号读取指定邮件号的邮件。DELE邮件号在指定邮件号的邮件上加上删除标志。NOOP无服务器返回+OK应答。RSET无将邮箱状态恢复到事务阶段之前的状态,即事务回滚。TOP邮件号行号传回指定邮件号的邮件头,行数由行号参数值确定。UIDL邮件号(可选)传回指定邮件号的邮件标识,缺省为所有邮件的邮件标识。2024年7月11日广州大学Java网络编程主讲:刘淼30更新状态户在事务状态中,通过客户软件发送各种命令,完成邮件读取和管理工作后,发送QUIT命令后,就进入更新状态。服务器接收到QUIT命令后,删除邮箱中作了删除标志的邮件,若成功删除,则向客户端发送肯定应答,否则,发送否定应答,结束本次会话。2024年7月11日广州大学Java网络编程主讲:刘淼31POP3协议客户端编程举例POP.javaPOP3ClientDemo.java
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!