第19章 简单电子邮件的客户端实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
件客户端的基本流程。学习本章,读者可以了解电子邮件的发展过程, 掌握电子邮件的基本协议和利用Visual C++ 6.0进行系统设计的基本流程。
19.1 概


随着计算机网络的发展,人与人之间信息传输的时间大为缩短。人们之间越来越多
的交流是在网络环境下进行的。例如许多文件都是以电子邮件的形式来传送,人们 越来越多地使用QQ等软件进行聊天等。而电子邮件是人们进行信息传输,文件交换 的常用工具。通过电子邮件,人们可以进行文字、图片、视频、声音、数据文件等
两种协议来完成,即SMTP和POP3。SMTP是Internet协议集中的邮件标准。 在Internet上能够接收电子邮件的服务器都有SMTP。电子邮件在发送前,发 件方的SMTP服务器与接收方的SMTP服务器联系,确认接收方准备好了, 则开始邮件传递;若没有准备好,发送服务器便会等待,并在一段时间后 继续与接收方邮件服务器联系。这种方式在Internet上称为“存储—转发” 方式。
服务器从其他邮件服务器接收邮件消息时,它是作为SMTP服务器端。
• 说明:SMTP协议是一种C/S模式的协议,它必须在服务器和客户机之间 使用。

通常Internet上的个人用户不能直接接收电子邮件,而是通过申请ISP(Internet Service Provider,互联网服务提供商)主机的一个电子信箱,由ISP主机负责电子邮件的接收。一 旦有用户的电子邮件到来,ISP主机就将邮件移到用户的电子信箱内,并通知用户有新邮 件。因此,当发送一条电子邮件给另一个客户时,电子邮件首先从用户计算机发送到ISP 主机,再到Internet,再到收件人的ISP主机,最后到收件人的个人计算机。ISP主机起着 “邮局”的作用,管理着众多用户的电子信箱。每个用户的电子信箱实际上就是用户所 申请的账号名,其都要占用ISP主机一定容量的硬盘空间。

第一种是在网站上使用电子邮件,也就是一般所说的Web使用方式。通常 人们使用时必须首先登录到WebMail服务器(网页邮件服务器),通过身份 验证后才可以查阅收发邮件。

第二种是一种不需要访问Web页面,只需要在本地机器上使用电子邮件的 相关软件,就可以直接收发、管理电子邮件。它既能支持全部的Internet电 子邮件功能,又能改正WebMail服务器使用的种种缺点,方便用户发送接收 邮件。目前以微软的OutLook Express和国产FoxMail为两款经典代表。两者 都是著名的客户端E-mail软件,功能不相上下。

电子邮件的传输是通过电子邮件简单传输协议(Simple Mail Transfer Protocol,简称SMTP)这一系统软件来完成的,它是Internet下的一种电子 邮件通信协议。关于具体的电子邮件传输过程(即协议)将在19.2节进行介
绍。
19.2 电子邮件协议分析 与系统设计
• 前面对电子邮件进行了介绍,本节对邮件的传输过程及传输中所使用的
2.邮件发送过程
• 一般来说,邮件传送需要进行3个阶段,分别为连接建立、发送邮件和
连接终止。 • (1)连接建立:当客户端与服务器端的常用电子邮件端口25号端口建
立TCP连接以后,SMTP就开始了其连接阶段。
• (2)报文传送:在SMTP客户与服务器建立连接以后,发信人就可以与 一个或多个收信人进行报文交换。此阶段是进行信件发送的主要阶段。 • (3)连接终止:在报文发送结束以后,客户端终止连接。此时,客户 机和服务器之间的连接终止,关闭TCP连接。

上面的过程就好像实际生活中信件的投递过程,所申请的电子邮箱就好比家庭地址。这 个地址是被邮局可以识别的。然后可以写信,在信封上写上收信人的地址,同时标识出 地址。这就是电子邮件的写信顺序,它也需要提供对方的电子邮件地址。接下来,需要 把信投递到邮局,而电子邮件是利用网络把信件投递到ISP。然后邮局根据所提供的地址 将信件投递到收件人所在地的邮局。最后邮局送信到收件人的家庭地址。电子邮件的顺
协议进行分析和介绍。同时给出本系统的设计方法。
19.2.1 邮件的传输


对于邮件的传输,它所使用的是SMTP协议为系统之间进行电子邮件的传输。
SMTP是因特网电子邮件系统重要的应用层协议。它使用由TCP提供的可靠 的数据传输服务把邮件消息从发信人邮箱所在邮件服务器传送到收信人邮 箱所在邮件服务器。SMTP是客户—服务器(C/S)应用模式,由发信人的 邮件服务器执行的客户端和收信人的邮件服务器执行的服务器端组成。 SMTP的客户端和服务器端同时运行在每个邮件服务器上。当一个邮件服务 器向其他邮件服务器发送邮件消息时,它是作为SMTP客户端。当一个邮件
(Extended SMTP,扩展SMTP)协议。 • ESMTP协议就是对标准SMTP协议进行了扩展。在使用SMTP进行邮件发送时并不要 求必须进行身份验证,即可以发送匿名邮件。当然现在大多数的服务器要求必须进
行身份验证以后才可以发送邮件,这也正是ESMTP协议发展的原因。利用ESMTP发
信时,服务器会要求用户提供用户名和密码以便验证身份。只有验证通过之后才可 以进行邮件发送。 • 在本书所介绍的客户端软件中,支持ESMTP协议,即在进行发送时必须进行服务器 身份验证,这也是当今绝大多数服务器需求的模式。
19.3 电子邮件客户端系 统设计分析
• 上面介绍了整个邮件的发送和接收过程,同时讲解了发送和接收过程中
协议的基本流程。在实际的应用中比上面的过程要稍微复杂一些,例如, 现在大多数的邮件服务器对SMTP都需要进行身份验证,同时一般的邮
件系统都支持附件的发送等。下面就本系统设计中的问题进行说明。
19.3.1 邮件的发送
交互性的通信方式相比,电子邮件这种非交互式的通信,不要求接收方与发送方同
时在线。可以说电子邮件是Internet资源使用最多的一种服务。E-mail不只局限于信 件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。

目前由于电子邮件广泛而频繁地使用,国内外各大网站大多都提供了电子
邮件服务,而且有些是免费服务。人们日常使用的电子邮件有很多,但是 就方式来说只有下面两种。
电子邮件从客户机传输到服务器。 从某一个服务器传输到另一个服务器。 SMTP是个请求/响应协议,通常有两种工作模式,发送SMTP和接收SMTP。
1.工作原理
• 利用SMTP协议进行邮件传输的具体步骤是当用户在网络上将邮件发送
到邮件服务器上以后,该服务器首先根据邮件的目的地址判断此邮件是 否为本地邮件。若目的地址为本地邮件则直接投送到用户的邮箱。否则
序也是一样,将邮件传递给ISP以后,ISP就需要根据对方的电子邮件地址将信件发送到对
方的ISP,然后ISP将信件发送到收信人的个人信箱。当用户登录到个人信箱时,就可以看 到信件并进行阅读。实际的电子邮件的传递过程如图19.1所示。
图19.1 邮件的传输过程
发信者 A 收信人 B
ISP
ISP

在Internet上将一段文本信息从一台计算机传送到另一台计算机上,可通过
第19章 简单电子邮件的 客户端实现
• 当今人们使用电子邮件基本包括Web使用方式和电子邮件客户端软件登
录方式。由于客户端软件登录方式无需登录网页,同时可以对信件进行 下载,使得以后可以在不上网的情况下阅读历史信件,所以客户端软件
登录更加受到人们的喜爱。本章介绍利用Visual C++ 6.0开发简单电子邮
19.2.3 POP3协议分析
• POP是用于电子邮件的接收,它使用TCP的110端口,现Fra Baidu bibliotek常用的是第3
版,所以简称为POP3。
1.POP3协议介绍
• POP3协议采用C/S工作模式。当客户机需要服务时,客户端的软件(例
如Outlook Express等)将与远端的POP3服务器建立TCP连接。当客户端 与远端建立了TCP连接以后,客户端就与服务器之间进行数据交换。由
的传递。随着Internet和WWW网的广泛普及,电子邮件的使用迅速增多起来。电子
邮件的使用不仅在数量上有突飞猛进的发展,其重要性也日益增加。 • 电子邮件(简称E-mail)又称为电子信箱或者邮箱,它是一种用电子手段提供信息 交换的通信方式。它是当今全球多种网络上使用最普遍的一项服务。与QQ这种及时
并等待响应,POP3命令采用命令行形式,用ASCII码表示。服务器响应是 由一个单独的命令行,或多个命令行组成,响应第一行以ASCII文本+OK或 -ERR指出相应的操作状态是成功还是失败。在POP3协议中有3种状态,分 别是认可状态、处理状态和更新状态。 • 一般情况下,大多数现有的POP3客户与服务器执行采用ASCII明文发送用 户名和口令。在认可状态等待客户连接的情况下,客户发出连接,并由命 令user/pass对在网络上发送明文用户名和口令给服务器进行身份确认。一旦 确认成功,便转入处理状态。 • 注意:现在有很多邮件服务器并不支持利用POP3协议读取信件,只能够 以Web方式登录进行邮件的接收。


前面已经介绍了利用SMTP协议进行邮件发送的基本流程,下面对实际发送过程中基
本步骤实现的设计进行分析。 现在大多数的客户端程序都有一项设置称为“我的SMTP服务器需要身份验证”。这 就是说平时所用的SMTP服务器都需要对发送邮件者的身份进行验证,例如
smtp.sina.com等都需要进行身份验证。在实际中,进行身份验证所使用的是ESMTP
19.3.2 邮件的接收
• 邮件的接收仅仅是POP3协议,在本系统中也是采用POP3协议进行接收
邮件。在用户输入密码和用户名以后,进行邮件的读取,同时将邮件的 标题列出。最后在用户选择某个邮件时,显示邮件的正文。
• 邮件的接收是本系统较为简单的一个部分,在实际的开发过程中,可以
方便地进行邮件接收的一些处理,例如邮件的过滤等,限于篇幅所限, 本书对此内容不再介绍。
• SMTP,是一种提供可靠且有效电子邮件传输的协议。其是建模在FTP文件
传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来 信有关的通知。该协议在传输文件过程中使用TCP的25号端口其基本原理 是:SMTP是基于TCP服务的应用层协议,由RFC0821所定义,其规定的命 令是以明文方式进行的。SMTP的一个重要特点是它能够在传送中接力传送 邮件,即邮件可以通过不同网络上的主机接力式传送。其工作在下面两种 情 • • • 况下:

电子邮件在发送与接收过程中都要遵循SMTP、POP3等协议,这些协议确 保了电子邮件在各种不同系统之间的传输。其中,SMTP负责电子邮件的发 送,而POP3则用于接收Internet上的电子邮件。

上面详细描述了整个传输的过程。下面对整个传输过程中使用到的SMTP和 POP3协议进行详细描述。
19.2.2 SMTP协议分析

客户端电子邮件软件一般都比WebMail服务器(网页邮件服务器)提供更为
全面的功能。使用客户端软件收发邮件登录时不用下载网站页面内容,速 度更快。同时使用客户端软件收到的和曾经发送过的邮件都保存在自己的 电脑中,不用上网就可以对旧邮件进行阅读和管理。实现了多用户、多邮 箱账户,多POP3(Post office protocol,邮局协议了)支持的功能,对邮件 管理更加快捷方便。正是由于电子邮件客户端软的种种优点,使它成为了 人们工作和生活中进行交流所必不可少的工具。
的话该邮件服务器需要向DNS查询远端邮件服务器的MX(Mail
Exchanger,邮件交换)记录,并建立与远端接收SMTP服务器之间的一 个双向传送通道,然后利用该通道实现邮件从用户服务器发送到接收服
务器。
• 通过上面的介绍可以看到,客户端与SMTP服务器进行交互时使用了一 系列的交互命 令,利用这些命令完成信件的发送,即信件从发送服务 器到达接收服务器。
于现在的服务器都需要用户提供用户名和密码进行验证,如果验证不通
过就会失去与服务器的连接。当验证通过以后,客户端就可以利用 POP3协议从服务器上读取邮箱内的信件。简单地说,POP3就是一个简
单而实用的邮件信息传输协议。
2.工作原理
• 在客户机与服务器进行了TCP连接以后,POP3客户向POP3服务器发送命令
相关文档
最新文档