关键词:信箱,邮件,SMTP/POP3,Delphi
摘 要
随着计算机网络技术的发展,电子邮件被大量使用,由于Web电子邮箱响应速度慢等缺点,开发本地邮件收发系统成为一种趋势。
论文首先从电子邮件的传输、邮件服务器、邮件的存储转发分析了电子邮件系统,然后详细研究了SMTP/POP3协议的工作原理和会话过程,在此基础上,最终实现了一个基于SMTP/POP3的邮件收发系统。系统具有帐号设置、通讯录、邮件收发、文件上下载等功能。其中帐号设置和通讯录采用了Access数据库技术;邮件的发送和文件的上传采用了SMTP协议;邮件的接收和文件的下载则采用了POP3协议。另外,邮件的收发和文件的上下载都使用了MIME编解码技术。整个系统是在Delphi 7开发环境下主要利用IdSMTP、IdPOP3和IdMessage组件实现的。
系统具有响应快、容易管理、可扩展、低成本等特点,经测试表明,系统各部分能够正常工作,满足邮件收发、文件上下载的需要。
关键词:信箱,邮件,SMTP/POP3,Delphi
第1章 绪论
1.1 研究背景
随着计算机网络的发展,人与人之间信息传输的时间大为缩短。许多文件都是以电子邮件的形式来传送,通常使用过计算机的人,或多或少都会用到Email来传输信息。通过电子邮件,人们可以进行文字、图片、视频、声音、数据文件等的传递。随着Internet网和WWW网的广泛普及,电子邮件的使用迅速增多起来。电子邮件的使用不仅在数量上有突飞猛进的发展,其重要性日益增加。据IDC(国际文献资料中心)统计,目前全球电子邮箱总数已超过5亿。而据CNNIC(中国互联网络信息中心)的最新调查,中国网络用户拥有E-mail帐号的平均值为2.6个,用户平均每周收到电子邮件数为12.9封,发出电子邮件数为8.2封。这说明电子邮件已不只是电话的替代品,它可以而且已经在广泛地应用着。当然,电子邮件也为人们带来了不利的一面。由于其接收发送电子邮件很少受到限制,造成电脑病毒、大量的垃圾邮件盛行,甚至个人隐私及安全受到了严重的威胁。但是,电子邮件作为当今社会主要的信息传播载体,发展趋势不会因此而停止。
目前由于电子邮件广泛而频繁的使用,国内外各大网站都提供了电子邮件服务,而且有些是免费服务。人们日常使用的电子邮件有很多,但是就方式来说只有两种。第一种是在网站上使用电子邮件,也就是一般所说的Web使用方式,通常人们使用时必须首先登录到WebMail服务器(网页邮件服务器),通过身份验证后才可以查阅收发邮件。但是用户不能总是处于登录状态,也不能每时每刻发送接收邮件。如果长时间没有对WebMail服务器进行操作,则被认为登录超时,自动退出系统。用户需要再次登录邮件服务器,才可以进行操作。由于频繁的登录填写帐户和密码,造成了用户对电子邮件的使用产生不便。这时出现一种不需要访问Web页面,只需要您在本地机器上使用电子邮件的相关软件,就可以直接收发、管理电子邮件。它既能支持全部的Internet电子邮件功能,又能改正WebMail服务器使用的种种缺点,方便用户发送接收邮件。所以,开发本地计算机上的邮件收发软件是一种发展趋势。
1.2 电子邮件简介
1. 电子邮件的传输
一个邮件系统的传输包含用户代理(User Agent)、传输代理(Transfer Agent)及接受代理(Delivery Agent)三大部分[1]。
用户代理是一个用户发信和收信的程序,负责将电子邮件按照一定的标准包装,然后送至邮件服务器,或由邮件服务器收回。
传输代理负责信件的交换和传输。将信件传送至适当的邮件主机,再由接受代理将信件分发至不同的邮件信箱。传输代理必须要能够接受用户邮件程序送来的信件,解读收信人的地址,根据SMTP协议将它正确无误地传递到目的地。现在一般的传输代理已采用Send mail程序完成工作。电子邮件到达邮件主机后,在经接收代理POP协议被用户读取至自己的主机。
在Internet电子邮件中,控制信件中转方式的协议称为SMTP协议。协议是建立在TCP/IP基础上比TCP/IP更高层的协议,经规定每一台计算机在发送(或中转)信件时怎样找到下一个目的地,而信件在两台计算机之间的传送仍采用TCP/IP协议[2]。
2. 邮件服务器
电子邮件系统的实现是在通信网上设立“电子信箱系统”,它实际上是一个高性能、大容量的计算机(即邮件服务器Mail Server)。通常Mail Server是执行多任务操作系统UNIX的计算机,它提供24小时的电子邮件服务,用户只需向Mail Server管理人员申请一个信箱帐号,就可使用这项快速的邮件服务。该计算机的硬盘作为信箱的存储介质,每位在该计算机上有信箱帐号的用户都被分配一定的存储空间作为其“信箱”,存储空间包含和所收信件、编辑信件以及信件存档三部分空间,每位用户都有属于自己的一个确定用户名和用户可以自己修改口令的信箱,用户使用口令开发自己的信箱,并进行发信、读信、编辑、转发、存档等各种操作。电子邮件的传输则是通过电子邮件简单传输协议SMTP来实现的[3]。
3. 邮件的存储转发
电子邮件系统采用的是一种“存储转发式”的服务方式,属异步通信方式,这正是电子信箱系统的核心。利用存储转发可进行非实时通信,信件发送者可随时随地发送邮件。假如收信人正在使用计算机,则可以马上阅读邮件,若收信人现在没有打开计算机,仍可将邮件立刻送到对方的信箱内,且存储在对方的电子邮箱中。接收者可随时打开计算机读取信件,不受时间和空间限制。在这里“发送”邮件意味着将邮件放到收件人的信箱中,而“接收”邮件则意味着从自己的信箱中读取信件,信件在信箱之间进行传递和交换,也可以与另一个邮件系统进行传递和交换[4]。
电子邮件的实际发送过程如下:首先由发送方计算机的邮件管理程序将邮件进行分拆并封装成传输层协议(TCP)下的一个或多个TCP邮包,而这些TCP邮包又按照网络层协议(IP)包装成IP邮包,并在它上面附上目的计算机的IP地址。然后由电子邮件软件根据目的计算机的IP地址,确定与哪一台计算机进行联接。假如联接成功,便将IP邮包送上网络,IP邮包Internet的传递过程中,将通过对路径的路由选择,经特定路线上的某些计算机的存储转发,最后到达接收邮件的目的计算机。在接收端,电子邮件程序会将IP邮包收集起来,取出其中的信息,按照正确的次序将其复原成初始的邮件,最后传送给收信人。如果在传输过程中发现IP包丢失,目的计算机就会要求重发。至于传输过程中出现的误码等问题,TCP邮包采用“校验和”技术进行处理。如果一个邮包在传输前后的“校验和”不一致,则表明传输有误,必须重发[5]。
在电子邮件传输的过程中,有时会出现目的计算机未开机或机器本身出现故障的情况,这时TCP/IP电子邮件系统将使用“延迟传递”(delayed delivery)机制[6]。使用这种机制,在远方的目的计算机暂时不能访问的情况下,发送端计算机会将邮件存储在缓冲区中,然后不断进行试探发送。这种功能是由TCP/IP中一种称为Spooling的缓冲缓存技术提供的。
1.3 本课题的研究意义
客户端电子邮件软件一般都比WebMail服务器(网页邮件服务器)提供更为全面的功能。使用客户端软件收发邮件,登陆时不用下载网站页面内容,速度更快;使用客户端软件收到的和曾经发送过的邮件都保存在自己的电脑中,不用上网就可以对旧邮件进行阅读和管理。同时实现多用户,多邮箱帐户,多POP3支持,对邮件管理更加快捷方便。正是由于电子邮件客户端软件的种种优点,它已经成为了人们工作和生活上进行交流必不可少的工具。
在本次课题中,利用Delphi 7.0软件开发平台,结合电子邮件协议,实现一个基于SMTP/POP3的邮件收发系统。开发和研究基于电子邮件协议的邮件收发系统具有一定的应用价值。
第3章 系统设计
第三章对邮件收发系统的架构做了详细分析,划分出了系统模块,并定义了各模块的具体功能和给出了设计方案。
3.1 系统模块划分
邮件收发系统是利用现有邮箱协议实现的一个电子邮件系统。根据系统需求和用户需求,该邮件收发系统可以分为用户管理模块、邮件收发模块、文件管理模块三个部分。其中具体应该实现的功能有帐号设置、通讯录管理、发送邮件、接收邮件、上传文件和下载文件。如图3.1,给出了邮件收发系统的层次结构图。
3.2 子模块功能定义
1. 用户管理模块:
1) 帐号设置:支持用户配置多信箱的功能,便于用户拥有多个信箱。用户在添加、保存信息后,系统将自动把信息添加到数据库中。功能:添加、保存、删除。
2) 通讯录管理:用户可以将联系人的信息添加到通讯录中以备查阅,然后通讯录会根据联系人不同分类而分别显示。功能:添加、保存、修改、删除、查询。
2. 邮件收发模块:
1) 发送邮件:系统可以选择不同的邮件服务器做为发送邮件的接收者,允许发送文本、图片、音频等。功能:标注信件优先级,设置字号大小、颜色,设置信件内容背景色,发送附件。
2) 接收邮件:系统可以选择不同邮件服务器的帐号,接收邮件。功能:查看、删除、标注、保存附件。
3. 文件管理模块:
1) 上传文件:系统应该可以方便快捷地上传文件,并对上传的文件进行特别标识。
2) 下载文件:系统可以通过识别特别标识将上传的文件下载到本地,并且可以对文件进行保存、删除的操作。