苏洪准
【摘要】文章分别阐述了基于客户机/服务器模式和Web方式的电子邮件工作原理,同时对浙教版高中信息技术教材《信息技术基础》的“电子邮件的工作奥秘”一节作出评析,指出其不足,并给出改进方案。
【关键词】电子邮件;WebMail;工作原理
从用户角度来看,电子邮件主要分为基于客户端软件的方式和Web方式两种。浙江教育出版社出版的高中信息技术教材《信息技术基础》第5.2节是“人际信息交流——电子邮件”,在这一节中,依次讲解了“收发电子邮件”、“申请电子邮箱”和“电子邮件的工作奥秘”。“收发电子邮件”讲解的是使用浏览器以Web方式收发电子邮件,而“电子邮件的工作奥秘”讲解的是基于客户端的电子邮件工作原理,并且是以隐含方式指明基于客户端软件。基于客户端软件的电子邮件工作原理并不能解释前两小节基于Web的电子邮件的相关内容。这种知识呈现上的混乱,不符合学生的认知规律,给学生的理解造成了很大的困难,不利于学生知识体系的构建。
基于客户机/服务器(Client/Server)模式的电子邮件工作原理
电子邮件是一种在万维网产生之前就已经存在并广泛使用的网络通信技术。在万维网产生之前,电子邮件的收发是基于客户端软件的。用户利用客户端软件,如Outlook Express、FoxMail,可以在个人电脑上完成编写邮件和阅读邮件的工作,因此,常把用户的电脑称为客户端(Client)。与之相对应,邮件服务提供商提供的专门处理邮件的计算机称为邮件服务器(Server)。这种邮件收发方式是基于典型的客户机/服务器(Client/Server)模式。
电子邮箱地址的格式为:用户名@域名。第一部分标识用户的邮箱,从文件系统角度看,电子邮箱就是一个文件夹;第二部分标识邮件所在的计算机,即存放用户邮件的邮局服务器。
1.电子邮件的发送
当使用电子邮件客户端软件编写完邮件并发送后,发送方计算机上的电子邮件软件使用发送方电子邮箱地址中的第二部分,与远程服务器(如图中的SMTP服务器1)构造一个TCP连接,并在此上面进行通信,该连接位于25号端口。一旦连接建立,客户端和服务器端的程序就遵循SMTP协议,相互发送信息。客户端先以HELO命令向服务器发出请求,并以Mail命令向服务器标识发件人的身份。服务器如果接受,就以OK作为响应。发送方再以RCPT命令,告知服务器收件人的身份。服务器如果同意为收件人接收邮件,就再以OK作为响应。至此,就建立了一个SMTP会话。然后,客户端使用相应的命令将邮件信息发送到服务器上。邮件的整个发送过程由发送方控制,需要确认几次才能够完成。
SMTP服务器还具有转发功能。SMTP服务器收到邮件后,检查收件人的地址,当收件方为本地计算机上的接收方时,直接将邮件存入用户的邮箱中;当收件方为远程用户时,SMTP服务器以客户端的身份与远程的服务器(如图SMTP服务器2)建立连接,将邮件传送给远程的服务器。这样依次进行,直到将邮件发送到接收者信箱中。
由此可见,SMTP服务器有两种工作状态:一是作为服务器接收从客户端发送来的电子邮件;二是作为客户端向另一个远程服务器发送电子邮件。
2.电子邮件的接收
电子邮件的接收也是通过客户端软件实现的。在TCP/IP协议族中,包含一个提供对电子邮件进行远程存取的协议,称为邮局协议(POP),现在使用的是第3个版本,通常称作POP3。邮局服务器(如图POP3服务器2)通过侦听TCP端口110开始POP3服务。
当客户端软件需要从邮箱中读取邮件时,它将与邮局服务器主机建立TCP连接,并在此上面进行通信。一旦连接建立,客户端和服务器端的程序就遵循POP3协议,相互发送信息。
客户端软件先使用USER命令和PASS命令将邮箱的账号、密码传送给POP3服务器,进行身份认证。当这一认证过程完成后,邮件客户端程序使用STAT命令请求服务器返回邮箱的统计资料,如邮件总数、邮件总字节数等。然后使用LIST命令请求服务器列出服务器里邮件数量和每个邮件的大小。接下来邮件程序就会使用RETR命令接收邮件,每接收一封邮件,便使用DELE命令请求服务器将该邮件置为删除状态。全部邮件接收完毕后,使用QUIT命令结束会话,和服务器断开连接。服务器收到QUIT命令请求后,便会将标有删除标志的邮件全部删除。邮件被下载到客户机上后,用户就可以使用客户端软件阅读邮件了。
由此可见,POP协议支持脱机工作方式。另外,有些邮局服务器还支持IMAP协议,这种协议支持脱机、联机和断连三种工作方式。
基于Web的电子邮件工作原理
随着万维网的产生,电子邮件技术也发生了很大变化,基于Web的电子邮件迅速发展起来。基于Web的电子邮件,有时也称WebMail。实际上,WebMail是一种利用浏览器通过Web方式收发电子邮件的服务或技术。WebMail不需要借助专用的邮件客户端,用户以Web方式直接登录服务器上的电子邮箱,即可读写、发送及管理电子邮件。目前,大部分国内的门户网站都提供WebMail服务,比如新浪、搜狐、网易、雅虎中国等等。
WebMail系统的服务器端通常由Web服务器、应用程序服务器和邮件服务器等组成。Web服务器通常借助于服务器端的JSP、PHP、ASP等脚本运行环境,以及客户端脚本,为用户提供邮件系统的访问界面。应用程序服务器负责访问用户信息数据库、收发邮件、管理邮箱等工作。Web服务器通过程序接口与应用程序服务器进行连接,而应用程序服务器又与邮件服务器、数据库服务器连接在一起。Web服务器和应用程序服务器通常按一前一后的形式进行配置,这种功能上的分离有助于提高系统性能,同时给最佳产品的选取留有余地。在一些小型的WebMail系统中,为了简化系统规模,通常将Web服务器和应用程序服务器放在一起,即建立一个Web应用程序服务器。
1.邮箱登录
对于WebMail,无论收信还是发信,用户必须先登录邮箱。登录邮箱时,用户利用表单(Form),使用HTTP协议将账号名(用户电子邮箱地址)和密码发送到Web服务器上,再通过应用程序服务器连接用户信息数据库进行身份验证。身份验证通过后,应用程序服务器连接邮局服务器,从用户邮箱中取得邮件信息,并返回给Web服务器,Web服务器再以网页的形式发送给用户。
HTTP协议是以明文形式发送账号名和密码的,安全性较差。许多网站使用安全连接对通信信息进行加密,即使用安全套接字层上的超文本传输协议(HTTPS),使信息安全得到保障。
基于HTTP协议的通信是建立在TCP连接之上的。在此基础上,浏览器和Web服务器要建立一个会话,以请求/应答方式进行工作。由于HTTP是无状态协议,每次通信都是单独连接,不能维持客户的上下文信息,所以WebMail系统有必要对用户会话进行跟踪。通常,WebMail系统使用几种常用的会话跟踪技术,如Cookie、Session等,维持客户端和服务器端的通信联系,跟踪每一个客户。
2.电子邮件的发送
用户利用表单(Form),完成电子邮件的撰写,并将邮件信息发送到Web服务器上。Web服务器通过程序接口将邮件信息传送给应用程序服务器。应用程序服务器通过组件或外部应用程序,使用SMTP协议将邮件发送出去。