网络程序设计-邮件传输课件

上传人:我*** 文档编号:139390732 上传时间:2020-07-21 格式:PPT 页数:106 大小:1.10MB
返回 下载 相关 举报
网络程序设计-邮件传输课件_第1页
第1页 / 共106页
网络程序设计-邮件传输课件_第2页
第2页 / 共106页
网络程序设计-邮件传输课件_第3页
第3页 / 共106页
网络程序设计-邮件传输课件_第4页
第4页 / 共106页
网络程序设计-邮件传输课件_第5页
第5页 / 共106页
点击查看更多>>
资源描述

《网络程序设计-邮件传输课件》由会员分享,可在线阅读,更多相关《网络程序设计-邮件传输课件(106页珍藏版)》请在金锄头文库上搜索。

1、网络程序设计,魏 宁,2020年7月21日,第八章 邮件传输,8.1 电子邮件简介,电子邮件(electronic mail,简称e-mail)是因特网上使用最多的一种应用,它为用户在因特网上设立了存放邮件的电子邮箱,发信人可以随时将电子邮件发送到收信人的电子邮箱,收信人也可以随时上网读取,发信人与收信人以异步的方式通信。,电子邮件系统的构成,一个电子邮件系统包括三个主要的构件,即用户代理,邮件消息传输代理和电子邮件使用的协议。,电子邮件系统的构成,电子邮件系统的构成,电子邮件系统包括邮件服务器和邮件客户端;邮件服务器又包括邮件发送处理服务器(遵循SMTP)和邮件接收处理服务器(遵循POP3协

2、议)。一般的邮件服务器(126、21cn、Hotmail等)都包括这两个功能。,电子邮件系统的构成,邮件服务器:发送服务器,接收服务器 1.邮件发送服务器,SMTP服务器; 2.邮件接收服务器,POP3服务器; ,电子邮件系统的构成,邮件客户端功能:发送邮件,接收邮件; 邮件客户端程序: Microsoft Outlook; FoxMail; 邮件客户端程序的其他功能: 在线/离线; 邮件导出功能;,电子邮件系统的构成,一封邮件的发件人和收件人如下: 发件人: 收件人: 则发送邮件时连接的服务器是: A: B: ,电子邮件系统的实现,电子邮件的发送与接收过程,电子邮件系统的实现,从以上的分析可

3、以了解电子邮件系统的特点: 是一种异步的通信系统,不像电话,通话的双方都必须在场。 使用方便,传输迅速,费用低廉,不仅能传输文字信息,还能附上声音和图像。 在电子邮件系统的实现中,ISP的服务器必须7X24小时地不间断地运行,这样才能保证用户可以随时发送和接收信件,而发送或接收电子邮件的用户则随意。,8.2 电子邮件的格式,在电子邮件系统的环境中,电子邮件信件是它传递的对象。最早规定电子邮件信件内容结构的标准是在1982发表的,称作RFC822,至今它仍然是Internet上电子邮件信件的当前标准。RFC822定义了信件从主机传递到主机时需要的格式化方式。它的主要用途是为信件提供规范化的格式,

4、使不同类型的网络可以相互传递电子邮件。该标准的最新文本是RFC2822。 RFC822规定,电子邮件信件的内容全部由ASCII字符组成,就是通常所说的文本文件,从组织上看,RFC822将信件内容结构分为信头和信体两大部分,中间用一个空白行。 对于一行的字符数,有一个1000/80的限制规则。 对于信件的行数,RFC822没有特别的限制,,8.2 电子邮件的格式,下面是一个电子邮件信件内容文本的实例,可以大致说明头部行的形式,头部的行由关键字和冒号开始,头部和正文部分由空行分隔开。 From: John_Q_P To: Date:Fri,1 Jan 99 10:21:32 EST Subject

5、: lunch with me? Bob Can we get together for lunch when you visit next week? Im free On Tuesday or Wednesday just let me know which day would prefer. john,8.2 电子邮件的格式,邮件标题 一般邮件的标题内容如下: Received:by ;Thu,10 July 2008 13:10:25+0800 Message-ID:0c6501b1452a$3d4c8ef0$ From:Hua Jin Date:Thu,10 July 2008 13

6、:10:25+0800 Reply-To:Jin Hua To: Subject:c# Network Programming X-Mailer:Microsoft Outlook Express 5.50.4133.2400,8.2 电子邮件的格式,标题定义的内容如下: (1)From:发件人账号。 (2)To:收件人账号。 (3)Reply-To:回复邮件的收件人账号。 (4)Subject:邮件主题。 (5)Date:邮件处理日期。 (6)Received:邮件服务器处理的日期,该内容由邮件服务器自行加入邮件标题中。 (7)Message-ID:邮件服务器所定义的邮件序号。 (8)X-M

7、ailer:邮件工具。 (9)其他:根据不同类型的邮件服务器而加入的标题内容。,邮件内容 根据RFC 822的定义,邮件内容以ASCII为其文字格式。SMTP协议用于发送邮件,其默认端口为25,SMTP协议定义了字段保留字及特殊符号等,以确保邮件能在邮件服务器间成功地被传送。RFC 822定义了SMTP字段保留字及符号。如: Reply-To:Jin Hua 其中: (1)Reply-To:字段保留字。 (2)(:):保留字与内容间需要用冒号隔开。 (3)(”):用户名等置于引号之中。 (4)():邮件账号及Message-ID等置于括号内。 (5)(,):当含有多个邮件账号时,用逗号隔开。

8、(6)():在邮件账号中,用户登录名与邮件服务器的DNS名称以连接。 (7)CRLF:每一行结尾要以CRLF结束,CRLF含义如下表所示。,8.2 电子邮件的格式,信件的头部,1信头的一般格式 信头由若干信头字段(header field)组成。 所有的信头字段包括四部分,字段名(field name),紧跟冒号: (colon),后跟字段体(field body),最后以回车换行符(CRLF)终止。即 信头字段 = 字段名:字段体 ,信件的头部,2结构化字段和非结构化字段 信头字段大体可以分为结构化字段和非结构化字段两种。 结构化字段有特定的格式,由语法分析程序检测。 非结构化的字段含有任意

9、的数据,没有固定格式。,信件的头部,3信头字段的元素 尽管Email信件的总体结构非常简单,但一些信头字段的结构是很复杂的。下面介绍一些大多数字段共有的元素。 (1)空白符 (2)注解 (3)字段折叠 (4)字段大小写,信件的头部,4标准的信头字段 (1)与发信方有关的信头字段 写信人字段 说明信件的原始创建者,给出他的电子信箱地址。创建者对信件的原始内容负责。 格式:From:mailbox 举例:From: ,信件的头部,发送者字段 说明实际提交发送这个信件的人,给出他的电子信箱地址。当发信人与写信人不一样时使用。比如,秘书替经理发信。发送者对发送负责。 格式:Sender:mailbox

10、 举例:From: Sender: ,信件的头部,回复字段 指定应当把回信发到哪里。如果有此字段,回信将会发给它指定的邮箱,而不会发给From字段指定的邮箱。比如,发送的是经理的信,但回信应交办公室处理。 格式:Reply-TO:mailbox 举例:From: Reply-TO: ,信件的头部,(2)与收信方有关的信头字段 收信人字段 指定主要收信人的邮箱地址,可以是多个邮箱地址的列表,地址中间用逗号隔开。 格式:TO:mailbox list 举例:TO: ,信件的头部,抄送字段 指定此信件要同时发给哪些人,也称为抄送。也可以使用邮箱地址列表,抄送给多个人。 格式:Cc:mailbox l

11、ist 举例:Cc: 密抄字段 指定此信件要同时秘密发给哪些人,也称为密件抄送。也可以使用邮箱地址列表,密抄给多个人。 格式:Bcc:mailbox list ,信件的头部,(3)其它的信头字段 日期字段 Date字段含有电子邮件创建的日期和时间。 格式:Date:date-time 举例:Date:Tue,04 Dec 2004 16:18:08 +800 信件主题字段 描述信件的主题。当回复信件时,通常在主题前面增加“Re:”前缀,标记为该信件为回复信件:当信件被转发时,通常在主题文字前面加上“Fw:”,“Fwd:”这样的前缀。 格式:Subject:*text 举例:Subject:He

12、llo! Subject:Re:Hello! ,信件的头部,接受字段 是投递信件的特定邮件服务器所作的记录。处理邮件投递的每个服务器必须给它处理的每个信头的前面加一个Received字段,用以描述信件到达目的地所经过的路径以及相关信息。当跟踪各个电子邮件问题时,这个信息很有帮助。 格式:Received: from domain /发送主机 by domain /接收主机 via atom /物理路径 id msg-id /接收者msg id 举例:Received:from wang195.0.0.1 by li129.5.0.4 Tue dec 2003 12:18:02 +800 ,信件

13、的头部,注释字段 用于把一个注解添加到信件中。 格式:Comments:*text 重发字段 当需要把收到的信件重发给另一组收信人的时候,可以保持整个原始信件不变,并简单地产生重发信件所要求的新信头字段。为避免与以前的字段相混。新添加的信头字段都加上Resent-前缀字符串,它们的语法与未加前缀的同名字段相同。 格式:Resent-* 举例:Resent-From Resent-Sender Resent-date Resent-Reply-To ,信件的头部,信件标识字段 用于表示一个信件唯一标识,该字段通常由Smtp服务器生成,这个值通常是唯一的。形式根据使用的软件而定。通常左边是标识符,

14、右边指定计算机名。 格式:Message-ID:msg-id ,信件的头部,5扩展的信头字段 如果想在信头中加入RFC822中没有规定的字段,就需要创建非标准字段。 方法非常简单,只要在自定义的信头字段名的前面使用X-前缀。RFC822将这种方法称为扩展字段。事实上已经有许多扩展字段被广泛应用,但没有标准定义。例如: X-LOOP字段 X-Mailer字段,信件的头部,6信头中必须要有的字段 在创建信件时,必须使用Date或Resent-Date字段指定创建信件的日期,必须使用From字段指定创建该信件的人或程序的信箱,必须至少使用TO、CC或Bcc中的一个,或者与它们等效的Resent-TO

15、,Resent-CC,Resent-Bcc中的一个,来指定接收信件的人。 除了这些创建信件时要求的信头以外,每个处理信件的邮件传输代理(MTA)必须在它处理的信件头部开始处加一个Received字段,就好像打了一个中转邮戳,这就是我们通常在许多信件的开始看到许多个Received字段的原因。,构造和分析符合RFC822标准的电子信件,1信件的构造 发送电子邮件的程序要进行电子信件的构造。 信件主要分为两大部分:信头和信体,在两部分之间用空白行隔开。 先构造信头,信头的必需字段有:一个Date字段,一个From字段,最少一个收信人字段。也可以根据需要加入其它的字段。信体部分比较简单,按照文本文件

16、的方法编写就行。对于较长的信头字段或信体行,可以使用折叠的方法,把它们变为80字符以内的行。,构造和分析符合RFC822标准的电子信件,2信件的语法分析 接收邮件的程序要对邮件进行结构和语法分析。 信件的语法分析是构造信件的逆过程,通过分析,从中提取必要的信息,使用户最终看到的不是软件接收下来的原始信件,而是经过处理的有条理的信件内容。 一般首先将存在折叠的字段展开,将跨多行的字段去掉折叠字符合成一个完整的字段,并在信头中与其它字段分隔开来。 去掉折叠的方法是将续行上面一行末尾的CFLF符替换成空格符。其次对字段进行处理,将字段头和字段体分离开。然后显示相关字段的内容。最后提取信件的正文内容。信件体和信头之间以空白行分开,根据这个特点可以很容易地将信头和信体区分开来。,MIME编码解码与发送附件,为了能利用电子邮件传送各种信息,在RFC1341中提出了一种方法,并在RFC2045至RFC2049中作了进一步的完善,这就是多用途Int

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号