任
贤1,王莹莹2,邓春燕1
(1.河池学院计算机与信息科学系,广西宜州546300;2.济南市科技信息研究所,山东济南250001)
摘
要:电子邮件服务已经成为互联网最重要的功能之一。通过对大量电子邮件系统研发资料的分析,研究各种邮
件收发系统的实现方式,并进行对比分析,探讨邮件系统进一步的研究方向。关键词:邮件系统;开发工具;邮件协议中图分类号:TP311.56
文献标识码:A
文章编号:1672-7800(2010)11-0093-02
0引言
基于网络的程序开发是当前各种应用软件研究的重要内
容,现有的开发工具也都尽可能的满足开发人员在网络应用上的需要。邮件系统作为Internet 网的主要服务之一,探讨它的开发手段与策略,使其具有更高效的性能有着重要的现实意义。本文的主要目的是通过对各方面材料的收集,整理出当前电子邮件系统的各种开发方案,并进行适当的对比,为研发系统提供方向。
1电子邮件收发原理及相关协议
电子邮件与普通邮件有类似的地方,发信者注明收件人的
姓名与地址(即邮件地址),发送方服务器把邮件传到收件方服务器,收件方服务器再把邮件发到收件人的邮箱中,如图1所示
。
图1
电子邮件收发过程
在电子邮件收发过程中,需要一系列的协议来规范这一过程,使得邮件的收发得以实现,并保障邮件在各类型服务器中的传送畅通。各开发工具和开发人员都基于几类主要的协议来完成该过程,下面对其进行介绍。
SMTP (Simple Mail Transfer Protocol )称为简单邮件传输协
议,目标是向用户提供高效、可靠的邮件传输。其可工作在两种情况下:一是电子邮件从客户机传输到服务器;二是从某一个服务器传输到另一个服务器。SMTP 是个请求/响应协议,它监听25号端口,用于接收用户的邮件请求,并与远端邮件服务器建立SMTP 连接。
MIME 的英文全称是"Multipurpose Internet Mail Exten-sions ",即多功能Internet 邮件扩充服务,是对SMTP 的扩展。其
设计的最初目的是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。然而当它被HTTP 协议支持之后,其意义就更为显著了。它使得HTTP 传输的不仅是普通的文本,而变得丰富多彩。
POP3的全称是Post Office Protocol ,即邮局协议,用于电子邮件的接收,它使用TCP 的110端口,现在常用的是第三版,所以简称为POP3。POP3采用Client /Server 工作模
式。
IMAP 是Internet Message Access Protocol 的缩写,主要提供的是通过Internet 获取信息的一种协议。IMAP 像POP 一样提供了方便的邮件下载服务,让用户能进行离线阅读,但IMAP 能完成的却远远不只这些。IMAP 提供的摘要浏览功能可以让
用户在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才做出是否下载的决定。
2
邮件系统开发工具
当前人们开发电子邮件收发系统主要是依据上述协议进
行,同时,各种流行的开发工具也多针对邮件系统的开发设计了一系列的函数、组件,使得系统的开发过程变得简单、快捷。不同的开发工具有着各自的特点和适用范围,下面从邮件系统开发方面进行分析。
2.1基于VC ++实现方案
Visual C ++是Windows 平台上的C ++编程环境,其功能强
大,尤其在面向底层开发时,它是一种优秀的编程工具。其并没有提供直接的邮件系统实现相关的函数与工具,但开发人员可以利用其socket 类(套接字技术)模拟实现SMTP 、POP3协议的
软件导刊
Software Guide
第9卷%第11期
2010年11月Vol.9No.11Nov.2010
作者简介:任贤(1983-),女,湖南汨罗人,河池学院计算机与信息科学系助教,研究方向为网络安全、智能计算;王莹莹(1981-),女,山东临沂人,
硕士,济南市科技信息研究所研究实习员,研究方向为软件工程、信息处理;邓春燕(1971-),女,广西宜州人,河池学院计算机与信息科学系副教授,研究方向为网络安全、智能计算。
通信过程,实现邮件的收发功能,主要原理见图2
。
图2SMTP邮件发送流程
Windows Socket类是对Windows Socket API的封装,其中包括:CSocket和CAsyncSocket类,使用它们能够大大简化网络通信程序的编写。
使用VC++开发的邮件系统具有极高的执行效率,但开发中对开发人员要求较高,如要求开发人员对于socket类非常熟悉,同时,也需要充分掌握SMTP、POP等协议的原理及通信细节,另外VC++主要基于Windows平台,其跨平台性较弱。
2.2基于DELPHI的实现方案
Delphi是基于PASCAL语言基础上加上面向对象的思想发展而来的,技术已较为成熟,最新版本的delphi有2010版本。和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和VB相比,Delphi则功能更强大、更实用。可以说Delphi同时兼备了VC功能强大和VB简单易学的特点。但其存在的缺陷是基础语言不够通用和开发系统软件功能不足。
对于电子邮件系统的开发,delphi提供了Indy控件组,其中包含的一系列组件使得应用其开发邮件系统变得简单、高效。其中与邮件发送相关的组件如下:TIdMessage组件用来对邮件内容进行存放和编码;TIdSMTP用来实现与SMTP服务器的连接与通信;TOpendialog组件也可用于发送程序的设计。反之,与邮件接收相关的组件有TIdPOP3提供邮件接收的协议支持、TIdMessage保存接收的邮件内容及编码、TListview组件用来显示本地硬盘中所接收邮件的目录信息,TListview组件用来显示邮件头信息。
选择DELPHI作为开发工具,考虑到其严格的语法检查、跨平台性较弱的特点,开发前需要进行较多的可行性分析,开发后的测试工作也将偏大。
2.3基于J ava的实现方案
J ava是目前流行的一种高效的软件开发工具,具有强大的网络功能,其在邮件系统的开发上同样非常出色。该开发平台提供了专门的邮件开发工具-JavaMail,将其嵌入到Java Senr-let代码中可开发电子邮件的发送和接收系统。
JavaMail API由接口和抽象类定义,可以实现所有的邮件协议,包括SMTP、POP3、IMAP等。JavaMail API主要包括4个部分:Session,Message,Transport和InternetAddress。Session定义了全局的和每个用户的与邮件相关的属性;Message表示单个邮件消息,其属性包括消息类型、地址信息和所定义的目录结构。Transport是一个抽象类,用于邮件的发送;InternetAd-dress把用户的E-mail地址映射为Internet地址。
J ava语言的跨平台兼容性,使得其成为当前应用最广的一种程序设计语言,尤其是在网络程序开发上,有着其它语言无法比拟的优越性。但J ava语言较为复杂,应用其开发程序周期较长,同时程序的执行方式为解释执行,执行速度较慢。
2.4基于.NET的实现方案
.NET语言更多指的是其下的C#语言,其从C、C++和Java 发展而来,采用了这3种语言最优秀的特点,并加入了它自己的特性。
.NET下自带System.Net.Mail命令空间下有SmtpClient类用于发送邮件,SmtpClient类与SMTP结合在一起,通过MailMessage类、MailAddress类、Attachment类来丰富电子邮件的内容和设置。利用SmtpClient类的Send方法可以完成发送电子邮件的传输,也可以用SendAsync方法进行异步发送,后者发送完成后会产生一个SendCompleted事件来通知发送结果。Send方法可以接受MailMessage类的对象作为参数。通过MailMessage类可以设置邮件更多的内容和格式,例如,为At-tachment类设置添加附件的参数,MailAddress类用于对邮件地址进行管理等。
.NET是基于Windows、面向网络程序设计的一个开发环境,其跨平台性能不如J ava,但在网络应用程序开发上有其特有的优势,且在面向底层的开发上功能强大。另外其下专有的C#语言语法简单,入门容易,可以进行快速、高效的系统开发,这是其最大的优点。同时,有资料表明微软正在增强其跨平台性能,这将使得.NET具有更广阔的市场空间。
3电子邮件组件
目前市场上有许多成熟的电子邮件组件可供开发人员使用,现进行收集如下,以供参考使用。Gmail、CDONTS.NewMail (虚拟SMTP发信),Persits.MailSender(ASPemail发信),SMTPsvg.Mailer(ASPmail发信),DkQmai.Qmail(dkQmail发信),Geocel.Mailer(Geocel发信),IISmail.Iismail.1(IISmail发信),SmtpMail.SmtpMail.1(SmtpMail发信)等。
4结束语
电子邮件服务是当前互联网上最重要的服务之一,每天都有众多的用户通过网络发送数以万计的邮件,电子邮件系统成为internet上最繁忙的工具。开发一个好的邮件收发系统可有效地提高服务效率、保障安全性能。本文对邮件协议、开发工具及常见组件进行分析,为邮件系统的开发提供参考。
参考文献:
[1]洪洲.Visual C++开发环境下用SMTP、POP3实现邮件收发[J].科技信息,2007(34).
[2]徐秀花,程晓锦.基于C#.NET的邮件管理系统的实现[J].北京印刷学院学报,2007(5).
[3]陈玉清.基于Java的Web邮件系统的设计与实现[J].河南师范大学学报,2009(8).
[4]郝树国,朱清新.基于IE-Web Service邮件收发系统的设计与实现[J].成都信息工程学院学报,2006(2).
[5]胡宝剑,刘英,黄忠全.基于Delphi收发电子邮件的程序设计与实现[J].重庆科技学院学报,2006(3).
(责任编辑:杜能钢)
94··下载本文