毕业设计(论文)-E-mail客户端的分析与实现.doc_第1页
毕业设计(论文)-E-mail客户端的分析与实现.doc_第2页
毕业设计(论文)-E-mail客户端的分析与实现.doc_第3页
毕业设计(论文)-E-mail客户端的分析与实现.doc_第4页
毕业设计(论文)-E-mail客户端的分析与实现.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

E-mail客户端的分析与实现摘 要此系统是用 java 语言实现的一个 Email客户端,主要用到 java GUI 图形界面设计和 java mail 工具包, 它适用于所有用户,无管理员设置,可以实现网络邮箱的邮件发送和邮件收取的基本功能,还具有简单通讯录的存储功能,针对用户的需求,本Email客户端具有发件箱和收件箱两大模块。 发件箱可以通过用户设置发送用户所需要的邮件信息,本页面可以实现查看已保存邮件信息、重发已发邮件、转发所收邮件、邮件标记、编辑邮件、新建邮件、删除邮件和打印邮件、发送,抄送、密送、发送附件、存储邮件、未存储提示等功能。收件箱可以通过用户设置收取用户所需要的邮件信息,本页面可以实现查看所收取的邮件信息、转发邮件、群发邮件、邮件标记(标记已读和未读)、编辑和存储邮件、删除邮件和打印邮件等功能。关键字:电子邮件;客户端;邮件收发全套设计加扣 3012250582iEmail client analysis and implementation of translationAbstractThis email client system is developed in java language using java GUI and java mail tools .It can be used by any users who want to use it . The system is not including manager settings and it can finish the function of sending and accepting mails in web mail system, it can store user information a function like a address book in the web. The systems need to achieve the overall function to run two parts, as follows Outbox can be set by the user to send email information that users need, this page view can be saved email messages, resend email, forwarded by email, mail tag, edit, mail, email, delete the email and new print, send mail, cc, close to send, send attachments, store mail, not storage tips, etc Inbox can be set by the user charge users need email messages, this page view can be received in email messages, E-mail forwarding mail, mass emails, mark (mark read and unread), edit and store email, delete the email and print email, etc.Key words:E-mail;Client;Mailrecipientii 目 录摘 要iAbstractii前 言11 系统概述及系统分析41.1 系统概述41.1.1 基本设置模块41.1.2 Email功能模块41.2 需求分析41.3 可行性分析41.3.1 技术可行性分析41.3.2 环境可行性分析51.3.3 经济可行性分析52 系统开发基本介绍62.1 选题背景与目的62.2 系统开发工具62.3 系统开发环境62.4 JAVA简介62.5 JAVA语言的特点72.6 SMTP协议82.6.1 SMTP协议简介82.6.2 SMTP的命令与应答92.7 POP3协议102.7.1 POP3协议简介102.7.2 POP3的命令与应答113 系统总体设计133.1 系统功能模块划分133.2 发件箱133.3 收件箱143.4 联系人144 系统详细设计及系统实现154.1 章节内容总体介绍154.2登录模块154.3 发邮件界面174.3.1群发邮件界面204.3.2 查看已发送邮件界面234.4 收邮件界面244.5联系人管理界面295 系统测试与分析325.1 系统测试的重要性325.2 测试实例的研究与选择325.3 测试环境与测试条件335.4 系统评价33结 论34参 考 文 献35致 谢36外文原文37中文翻译43iv前 言 电子邮件作为互联网中交换信息广泛的通信工具之一,如今都已被广大用户接受。早期的电子邮件只是从一个计算机终端向另外一个计算机终端传送文本信息,而现在的电子邮件不仅可以发送文本信息,还可以传送声音、图片、文档等多种信息。很多邮件邮件客户端软件不断地被用户利用起来,例如outlook,Foxmail,但是这些邮件客户端对于很多用户来说却过于复杂。本课题开发了这个功能相对简单实用的简易邮件收发器。 电子邮件来源于专有电子邮件系统,早在Internet流行以前,电子邮件就已经存在了,是在主机-多终端的主从式体系中从一台计算机终端向另一台计算机终端传送文本信息的相对简单的方法下发展起来的。经历了漫长的过程之后,它现在已经演变成为一个更加复杂并丰富得多的系统,可以传送声音、图片、图像、文档等多媒体信息,以至于如数据库或账户报告等更加专业化的文件都可以以电子邮件附件的形式在网上分发。现在,电子邮件已成为许多商家和组织机构的生命血脉,用户可以通过电子邮件的讨论会进行项目管理,并且有时还根据快速而且跨洲际的电子邮件信息交换进行重要的决策行动。毫无疑问的是,Internet扩展了其应用的范围,过去只能在其局域网上进行交谈的公司现在可以通过网络与他们的客户、竞争伙伴与世界上的任何人进行通信和交流某个组织的电子邮件系统运行在支持TCP/IP协议的网络上或具有支持两个Internet邮件服务协议SMTP(简单邮件传输协议)和POP(邮局协议)之一的Internet网关,它的邮件用户就能够连接到任何具有相似连接的电子邮件地址上并且不论其电子邮件账户在何处。随着信息技术的提高,网络的普及于发展,越来越多的网络工具随之产生出来,网络邮箱就是其中之一,它可以通过网络来实现人们之间的通信,可以给人们的工作带来极大的方便,同时也缩短了人与人之间的距离,使人们在通信上需要花费的时间更短。 伴随着信息技术的快速发展,电子邮件已经成为最基本的网络通信工具,每天都有成千上万的用户使用它。电子邮件(简称E-mai1)又称电子信箱、电子邮政,它是种用电子手段提供信息交换的通信方式,它是全球多种网络上使用最普遍的一项服务。这种非交互式的通信,加速了信息的交流及数据传送,它是个简易、快速的方法。进入国际互连网的用户可以方便的使用电子邮件,而且不用任何纸张,就可以方便的写、寄、读、转发信件,而且它不论地球的任何区域,只要他在网内就可以进行转发,而不受任何时间的限制。利用电子邮件还可以实现文件的传输、电子杂志的订阅,进行学术讨论,举行电子会议或者查询信息。这是目前最普及也是最方便的通信工具。很多应用程序都附带有电子邮件的发送和接收功能,因此,电子邮件和接受程序的编程变的十分重要。 电子邮件(Electronic Mail,E-mail)是利用计算机网络传递的电子媒体信件,它是随着计算机网络出现的,依靠网络的通信手段实现普通邮件信息的传输。虽然电子邮件是在70年代发明的,它却是在80年才得以兴起。70年代的沉寂主要是由于当时使用Arpanet网络的人太少,网络的速度也仅为目前56Kbps标准速度的二十分之一。受网络速度的限制,那时的用户只能发送些简短的信息,根本别想象现在那样发送大量照片;到80年代中期,个人电脑兴起,电子邮件开始在电脑迷以及大学生中广泛传播开来;到90年代中期,互联网浏览器诞生,全球网民人数激增,电子邮件被广为使用。 现在使用电子邮件已经成为日常工作、生活中不可缺少的一部分,关于电子邮件发生的最大变化是基于互联网的电子邮件的兴起。人们可以通过任何联网的计算机在邮件网站上维护他们的邮件帐号,而不是只能在他们家中或公司的联网电脑上使用邮件。因此,需要对已有的传输文件程序以及信息程序进行研究,研制出一套新程序,它可通过电脑网络发送和接收信息,再也没有了以前的种种限制。 随着网络的不间断发展,依靠网络的通信手段实现普通邮件信息的传输,取代了传统的纸上书写、信箱投寄、邮局传送的邮寄方式。运用最为快捷,简洁,方便的电子邮件已成为许多商家和组织机构的生命血脉。用户可以通过电子邮件的讨论会进行管理,并且有时要根据快速,或洲际的电子邮件信息交换进行重要的决策行动。 电子邮件(Electronic Mail、E-mai1)又称电子信箱,它是种用电子手段提供信息交换的通信方式,是应用于网络上的使用最广泛的网络功能之一。到目前为止,可以说电子邮件是Internet资源使用最多的一种服务,E-mail不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。电子邮件不是“终端到终端”的服务,而是被称为“存贮转发式”的服务。“存贮转发式”正是电子信箱系统的核心,利用存贮转发可进行非实时通信,属异步通信方式。电子邮件的发送几乎是即时的并且可以一次发送给多个人,发送和接收主要通过SMTP协议和POP3协议来实现,经过几十年的发展,电子邮件系统已经形成了完善的技术体系。 电子邮件系统是一种新型的信息系统,是通信技术和计算机技术结合的产物。电子邮件系统采用“存储转发”的机制来完成电子邮件的收发。邮件服务器处理发送和接收消息的事项,并在处理电子邮件的过程中与其他机器进行通信。 自从1987年9月,CANET在北京计算机应用技术研究所内正式建成中国第一个国际互联网电子邮件节点,并于9月14日发出了中国第一封电子邮件:Across the Great Wall we can reach every corner in the world.(越过长城,走向世界)以来,电子邮件服务在我国得到了飞速的发展。至2005年7月,依据中国互联网络信息中心颁布的第十六次中国互联网络发展状况统计报告的结果显示,我国网民人数已达1.03亿人,平均拥有1.6个E-mail,平均每周收到5.2封电子邮件(不包括垃圾邮件),发出3.7封电子邮件。同时,这次统计报告还显示,电子邮件服务依旧是除万维网之外,应用最为广泛的一种服务,我国网民对电子邮件的使用率已经达到了91.3%。随着电子商务近几年的飞速发展,现在使用电子邮件已经成为了主流,用户可以随时随地方便的使用它来传送信息,并且电子邮件作为一种新兴的商务手段,也得到了广泛的应用。虽然在电子商务不断发展的同时,还逐渐出现了许多应用技术,如:IP电话、网络会议、留言版、论坛等等。然而电子邮件以其普及适用性、稳定性、易用性、传输内容多样性、相对保密性成为了众多电子商务应用技术中最为普遍和重要的一种应用方式,并受到越来越多的人的青睐。可是,电子邮件作为一种计算机的数字化技术,其方便性和快捷性则非常重要,对设计和开发的邮件收发程序的要求也越来越高,我们都向着这个方向努力着。 电子邮件系统经过几十年的发展,已经形成了完善的技术体系。邮件服务器系统在保留了电子邮件系统最初的收发邮件、邮件存储等基本功能的同时,融入了最新的计算机与网络技术,使电子邮件系统有了全新的改观 。电子邮件系统应该具备无限的扩展能力,Internet网络的一个特性是变化无常,我们需要应对随时而来的应用尖峰。因此,我们需要电子邮件系统具有无限的可扩展能力,这个能力主要体现在邮件的处理能力和邮件的存储能力上。为了能够使邮件的处理能力可以无限扩展,就需要引入集群和负载均衡技术,使应用平台可以在需要的时候无限扩充,满足长期或临时的业务需要。为了便于邮件存储,需要高性能的邮件存储解决方案。 总之,电子邮件是一项系统工程,需要网络、数据存储、数据库、操作系统等技术的支持;它现在已经演变成为一个更加复杂并丰富得多的系统,可以传送声音、图片、图象、文档等多媒体信息,以至于如数据库或帐目报告等更加专业化的文件都可以电子邮件附件的形式在网上分发。现在,电子邮件已成为许多商家和组织机构的生命血脉。用户可以通过电子邮件的讨论会进行项目管理,并且有时要根据快速,或洲际的电子邮件信息交换进行重要的决策行动。1 系统概述及系统分析1.1 系统概述随着信息技术的提高,网络的普及于发展,越来越多的网络工具随之产生出来,网络邮箱就是其中之一,它可以通过网络来实现人们之间的通信,可以给人们的工作带来极大的方便,同时也缩短了人与人之间的距离,使人们在通信上需要花费的时间更短。该Email客户端不仅仅具有网络邮箱的功能,它可以让用户绑定多个邮箱,可以说是多个网络邮箱的公共接口,不进方便了人们的工作,还做到了有效利用网络的信息资源,极大的提高人们的工作效率,减少了很多的工作量。该系统的功能模块主要由以下部分组成。1.1.1 基本设置模块该模块可以完成此用户设置和邮箱设置两大内容,其中用户设置可以完成用户的一些基本信息的设置,包括用户名、用户密码、联系方式、邮政编码、通讯地址、邮箱地址,并可以对其进行存储、浏览、查看、删除、修改、打印等操作。邮箱设置可以完成对所使用邮箱的邮箱服务器、SMTP、POP3的一些设置,也可以对这些设置进行存储、浏览、查看、删除、修改等操作。1.1.2 Email功能模块该模块可以完成网络邮箱的收取邮件、发送邮件、保存邮件的功能,并可以对这些邮件进行存储、转发、群发、浏览、删除、修改、打印等操作。此模块还具有通讯录的功能,可以存储其他网络邮箱用户的用户名和邮箱地址进行存储、修改等功能。1.2 需求分析 Email客户端的设计目的是要为了实现网络邮箱的邮件发送和收取的一些功能。为使用邮箱的用户提供便利。系统所面对的用户可以是任何普通用户,系统对于一个用户只允许以一种身份登录。用户登录后可以对系统进行管理,其主要操作是维护个人的基本信息,对其信息进行修改、存储等操作。将系统需求加以总结,得出系统需求如下:(1)系统可以运行任何操作系统平台上,并具有友好的用户界面;(2)系统用户类型为:任何普通用户。1.3 可行性分析1.3.1 技术可行性分析Java很有雄心的宣言writeonce,runanywhere许诺:一个具有下拉菜单,命令按钮,滚动条以及其他常见的GUI控件的应用程序将能够在各种操作系统上运行而不必重新编译成针对某一平台的二进制代码,系统上运行而不必重新包括MicrosoftWindows,SunsownSolaris,ApplesMacOS以及Linux。根据邮件收发提出的系统功能、性能及实现系统的各种约束条件,根据新系统目标来衡量所需的技术是否具备,本系现有的技术已较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发的。该系统拟采用成熟的数据库技术与系统开发技术,JAVA技术.本系统对用户的要求,除了需要具备在Microsoft Windows平台上使用个人电脑的知识外,并不需要特别的技术能力。使用系统的用户,在投入使用前,无需对操作系统的人员进行培训。这样既减少投入成本又简化了操作环节。1.3.2 环境可行性分析(1)法律因素 本系统是根据简易邮件收发器的实际情况开发研制的,是通过大量的调研得出的,系统的系统设计是在独立的环境下完成的,无可供抄袭的系统产品。(2)用户使用可行性本系统对用户的要求,除了需要具备在Microsoft Windows平台上使用个人电脑的知识外,并不需要特别的技术能力。使用系统的用户,在投入使用前,无需对操作系统的人员进行培训。这样既减少投入成本又简化了操作环节。1.3.3 经济可行性分析通过对本系统的分析研究,主要从成本和效益两方面进行分析其经济可行性。(1)支出 本系统的设计是为了完成毕业设计,所以用到的都是一些开源软件或在试用期的软件,所以开发系统软件费用不用考虑。如果本系统运行,需要把用适用版的软件编写的代码用一些开源工具编译一次即可,所以运行的软件费用也不存在。在硬件方面,开发本系统只需要一台电脑,所以开发系统硬件费用也不用考虑。但是这个费用是相当少的。综上所述,本系统的支出成本很少,可以承受。(2)效益本系统的效益可以从经济效益和社会效益两方面考虑。其经济效益主要来源于系统的广告收入,其收入会远超过系统的开发和运行成本。其社会效益包括系统投入运行后可以基本满足所有用户的需求,减少用户的查询时间,提高查询效率。本系统的社会可行性主要从法律因素、用户使用可行性两方面进行研究。经济可行性分析要估计项目的成本和效益,分析项目经济上是否合理。即进行成本效益分析,评估项目的开发成本,计算开发成本是否会保证项目预期的全部利润6。系统的开发基于本人对程序开发的实践学习而来,无需资金投入,并且系统开发过程投入的成本不高,因此开发经费完全可以接受。开发此系统所用软件可在网络上下载使用。2 系统开发基本介绍2.1 选题背景与目的随着信息技术的提高,网络的普及于发展,越来越多的网络工具随之产生出来,网络邮箱就是其中之一,它可以通过网络来实现人们之间的通信,可以给人们的工作带来极大的方便,同时也缩短了人与人之间的距离,使人们在通信上需要花费的时间更短。该Email客户端不仅仅具有网络邮箱的功能,它可以让用户绑定多个邮箱,可以说是多个网络邮箱的公共接口,不进方便了人们的工作,还做到了有效利用网络的信息资源,极大的提高人们的工作效率,减少了很多的工作量。正是因为该系统所具有的这些优点才开发了此系统。2.2 系统开发工具 本系统在开发过程中使用java GUI和java中java mail工具包实现了email的收发和一些基本的管理功能。2.3 系统开发环境在软件环境方面,系统的开发环境如下:操作系统:Windows 7;开发平台:eclipse。2.4 JAVA简介Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Java applet。另一方面,Java技术也不断更新。(2010年Oracle公司收购了SUN)Java由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。Java平台由Java虚拟机(Java Virtual Machine,简称JVM)和Java 应用编程接口(Application Programming Interface,简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。常用的Java平台基于Java1.4,最近版本为Java1.7。Java分为三个体系J2SE(Java2 Platform Standard Edition,java平台标准版),J2EE(Java 2 Platform,Enterprise Edition,java平台企业版),J2ME(Java 2 Platform Micro Edition,java平台微型版)。与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。Sun公司对Java编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java 平台是基于 Java 语言的平台。这样的平台非常流行1。因此微软公司推出了与之竞争的.NET平台以及模仿 Java 的C#语言。2.5 JAVA语言的特点Java语言是简单的。Java语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用Java5。另一方面,Java丢弃了C+中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。Java语言是面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C+语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C+。Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。2.6 SMTP协议SMTP( Simple Mail Transfer Protocol)简单邮件传输协议,是目前使用最广泛的发送电子邮件的协议。SMTP通常用于把电子邮件从客户机传输到服务器,以及从某一服务器传输到另一个服务器。2.6.1 SMTP协议简介简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件,它独立于传送子系统而且仅要求一条可以保证传送数据单元顺序的通道。SMTP的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境(IPCE),该环境可以包括一个网络,几个网络或一个网络的子网。传送系统(或IPCE)不是一对一的,进程可能直接和其它进程通过已知的IPCE通信。邮件是一个应用程序或进程间通信,邮件可以通过连接在不同IPCE上的进程跨网络进行邮件传送,更特别的是,邮件可以通过不同网络上的主机进行接力式传送。SMTP设计基于以下通信模型:针对用户的邮件请求,发送SMTP与接收SMTP之间建立一个双向传送通道。接收SMTP可以是最终接收者也可以是中间传送者。SMTP命令由发送SMTP发出,由接收SMTP接收,而应答则反方向传送。一旦传送通道建立,SMTP发送者发送MAIL命令指明邮件发送者。如果SMTP接收者可以接收邮件则返回OK应答。SMTP发送者再发出RCPT命令确认邮件是否接收到。如果SMTP接收者接收,则返回OK应答;如果不能接收到,则发出拒绝接收应答(但不中止整个邮件操作),双方将如此重复多次。当接收者收到全部邮件后会接收到特别的序列,如果接收者成功处理了邮件,则返回OK应答。SMTP提供传送邮件的机制,如果接收方与发送方连接在同一个传送服务下时,邮件可以直接由发送方主机传送到接收方主机;当两者不在同一个传送服务下时,通过中继SMTP服务器传送,为了能够对SMTP服务器提供中继能力,它必须拥有最终目的主机地址和邮箱名称。SMTP的工作过程有一下几个过程有:(Mail)基本发送过程,向前传送邮件,确认邮箱名称和扩展邮件列表,发送到终端和打开关闭交换等。2.6.2 SMTP的命令与应答SMTP定义了14个命令,它们是:HELO MAIL FROM: RCPT TO: DATA RSET SEND FROM: SOML FROM: SAML FROM: VRFY EXPN HELP NOOP QUIT TURN 其中使得SMTP工作的基本的命令有7个,分别为:HELO,MAIL,RCPT,DATA,REST,NOOP和QUIT。下面分别介绍如下:HELO-发件方向收件方问候,命令后面是发件人的服务器地址或标识。收件方回答OK时标识自己的身份。问候和确认过程表明两台机器可以进行通信,同时状态参量被复位,缓冲区被清空。MAIL-这个命令用来开始传送邮件,它的后面跟随发件方邮件地址(返回邮件地址)。它也用来当邮件无法送达时,发送失败通知。为保证邮件的成功发送,发件方的地址应是被对方或中间转发方同意接受的,这个命令会清空有关的缓冲区,为新的邮件做好准备。RCPT -这个命令告诉收件方收件人的邮箱。当有多个收件人时,需要多次使用该命令,每次只能指明一个人。如果接收方服务器不同意转发这个地址的邮件,它必须报550错误代码通知发件方;如果服务器同意转发,它要更改邮件发送路径,把最开始的目的地(该服务器)换成下一个服务器。DATA-收件方把该命令之后的数据作为发送的数据。数据被加入数据缓冲区中,以单独一行是.的行结束数据。结束行对于接收方意味着立即开始缓冲区内的数据传送,传送结束后清空缓冲区;如果传送接受,接收方回复OK。REST-这个命令用来通知收件方复位,所有已存入缓冲区的收件人数据、发件人数据和待传送的数据都必须清除,接收方必须回答OK。NOOP-这个命令不影响任何参数,只是要求接收方回答OK,不会影响缓冲区的数据。QUIT-SMTP要求接收方必须回答OK,然后中断传输。在收到这个命令并回答OK前,收件方不得中断连接,即使传输出现错误。发件方在发出这个命令并收到OK答复前,也不得中断连接。对SMTP命令的响应是多样的,它确定了在邮件传输过程中请求和处理的同步,也保证了发送SMTP知道接收SMTP的状态。每个命令必须有且只有一个响应。SMTP响应由三位数字组成,其后跟一些文本。数字决定了下一个应该进入的状态,而文本对人是有意义的。三位的响应已经包括了足够的信息,不用再阅读文本,文本可以直接抛弃或者传递给用户。特别的是,文本是与接收和环境相关的,所以每次接收到的文本可能不同。在附录E中可以看到全部的响应码。正规的情况下,响应由下面序列构成:三位的数字,一行文本和一个,或者也可以是一个多行响应。只有EXPN和HELP命令可以导致多行应答,然而对所有命令,多行响应都是允许的。SMTP协议传送邮件的应答:500 格式错误,命令不可识别(此错误也包括命令行过长)501 参数格式错误502 命令不可实现503 错误的命令序列504 命令参数不可实现211 系统状态或系统帮助响应214 帮助信息220 服务就绪221 服务关闭传输信道 421 服务未就绪,关闭传输信道(当必须关闭时,此应答可以作为对任何命令的响应)250 要求的邮件操作完成251 用户非本地,将转发向450 要求的邮件操作未完成,邮箱不可用(例如,邮箱忙)550 要求的邮件操作未完成,邮箱不可用(例如,邮箱未找到,或不可访问)451 放弃要求的操作;处理过程中出错551 用户非本地,请尝试452 系统存储不足,要求的操作未执行552 过量的存储分配,要求的操作未执行553 邮箱名不可用,要求的操作未执行(例如邮箱格式错误)354 开始邮件输入,以.结束554 操作失败2.7 POP3协议POP3(Post office Protrol,邮局协议,第3版)是Internet上传输电子邮件的第一个标准协议,也是一个离线协议。POP3为客户机提供了发送信任状(用户名和密码),这样就可以规范对电子邮件的访问。POP3是绝大多数邮件收发程序使用的协议,用户接收邮件时,一般都使用该协议。2.7.1 POP3协议简介POP3协议适用于C/S结构的脱机模型的电子邮件协议。在POP3协议下,当客户机与服务器连接并查询电子邮件时,被客户机所指定的将被下载的邮件都将被程序下载到客户机,下载后客户机可进行读取,修改等操作,而无需与服务器进一步交互。POP3客户向POP3服务器发送命令并等待响应,POP3命令采用命令行形式,用ASCII码表示。服务器响应是由一个单独的命令行组成,或多个命令行组成,响应第一行以ASCII文本+OK或-ERR指出相应的操作状态。在POP3协议中有三种状态(如图2-1所示),即认可状态,处理状态和更新状态。当客户机与服务器建立联系时,一旦客户机提供了自己身份并成功确认,即由认可状态转入处理状态,在完成相应的操作后客户机发出quit命令,则进入更新状态,更新之后重返认可状态。图2-1 POP3协议与三种状态间的关系2.7.2 POP3的命令与应答一般情况下,大多数现有的POP3客户端与服务器执行采用ASCII明文发送用户名和口令,在认可状态等待客户连接的情况下,客户发出连接,并由命令user/pass对在网络上发送明文用户名和口令给服务器 进行身份确认。一旦确认成功,便转入处理状态。为了避免发送明文口令的问题,有一种新的认证方法,命令为APOP,使用APOP,口令在传输之前被加密。当第一次与服务器连接时,POP3服务器向客户机发送一个ASCII码问候,这个问候由一串字符组成对每个客户机是唯一的,与当时的时间有关,然后客户机把它的纯文本口令附加到从服务器接收到的字符串之后,然后计算出结果字符串的MD5单出函数消息摘要,客户机把用户名与MD5消息摘要作为APOP命令的参数一起发送出去。一开始便是客户端与服务器的连接,端口设为POP3协议默认的110。 客户端连接服务器成功后,服务器会返回以下信息: +OK 字符+OK是POP3协议的返回信息(如表2-1)。它的回应信息不像SMTP协议那样用丰富多变的数字表示,只有两个:+OK或者-ERR。其中,+OK表示连接成功,而-ERR则表示连接失败。 接下来,客户端输入USER 该命令告诉服务器你的用户名。注意,有些服务器会区分大小写字母的。服务器返回+OK后,客户端输入PASS 服务器返回+OK后,还返回一些邮箱的统计信息,比如:+OK 1 message(s) 1304 byte(s) 不同的服务器返回的信息格式不太一样,所以我们可以用STAT命令来查看邮箱的情况。STAT命令的回应中有两个数字,分别表示邮件的数量和邮件的大小。如果信箱里有信,就可以用RETR命令来获取邮件的正文。RETR命令的格式为: RETR 如果返回结果第一行是+OK信息,则表示成功。第二行起便是邮件的正文。最后一行和SMTP协议一样,是一个单独的英文句号,表示邮件的结尾部分。把邮件存储起来后要用DELE命令删除邮箱中的邮件,否则原有的邮件会继续保留在服务器上,一旦邮件一多,你的邮箱就爆了。DELE命令的格式为: DELE 如果删错了,可以用RSET命令来恢复所有已被删除的邮件。条件是你还没有退出,一旦退出,邮件便不能恢复了。全部完成以后,输入QUIT命令就可以退出POP3服务器了。POP3协议命令码如标2.1所示。表2.1 pop3协议命令码命令参数状态说明USER用户名认可此命令与PASS若成功,将导致状态转换PASS密码认可 APOP名字,Digest认可Digest是MD5的消息摘要STAT名字,Digest处理请求服务器发送回关于邮箱的统计资料,如邮件数等UIDLMsg#处理返回邮件的统一标志符,POP3会话的每一个标志符都是唯一的LISTMsg#处理返回邮件数量和每个邮件的大小RETRMsg#处理返回由参数标志的邮件的全部文本DELEMsg#处理服务器把由参数标识邮件记为删除,由QUIT命令执行RSETMsg#处理服务器将重置所有标记为删除的邮件,用于撤消DELE命令TOPMsg#处理服务器返回参数标识的邮件前n行内容,n是正整数NOOPMsg#处理服务器返回一个肯定的响应QUITMsg#更新如果服务器处于处理状态,那么进入更新状态删除任何标记为删除的邮件;若处于认可状态,结束会话,不进行更新3 系统总体设计3.1 系统功能模块划分模块分析是描述系统需求的一个过程,需要将需求分析中的感性描述进行抽象,提取出要实现的功能,这是整个系统开发的一个关键过程。模块分析的第一步,是描述Email客户端的功能,以此确定系统的功能需求。本Email 客户端对任何一个用户都是普通用户,无管理员设置,对每一个用户都具有普通邮箱所具有的收取、发送邮件的功能,因此根据用户操作需求,将系统划分为如下功能,并对其模块的划分和功能进行描述.整个系统的模块结构划分,将Email客户端划分为三大模块,这些模块又是由若干个子模块构成的,形成一个结构紧凑功能明确完整,子模块的划分见系统具体功能模块的基本介绍。3.2 发件箱发件箱可以通过用户设置发送用户所需要的邮件信息,本页面可以实现查看已保存邮件信息、重发已发邮件、转发所收邮件、邮件标记、编辑邮件、新建邮件、删除邮件和打印邮件、发送,抄送、密送、发送附件、存储邮件、未存储提示等功能。其流程图如图3-1所示。图3-1发邮件流程图3.3 收件箱收件箱可以通过用户设置收取用户所需要的邮件信息,本页面可以实现查看所收取的邮件信息、转发邮件、群发邮件、邮件标记(标记已读和未读)、编辑和存储邮件、删除邮件和打印邮件等功能。其流程图如图3-2所示。图3-2收邮件流程图3.4 联系人通讯录可以存储用户的好友信息,可以方便用户完成对邮件信息的发送,尤其是转发和群组发送功能,通讯录的存在在很大程度上方便了使用系统的用户。本通讯录可以实现查看好友、增加好友、删除好友、编辑好友信息、删除好友信息等功能,本系统还可以建立多个通讯录,每个通讯录都可以对所存用户进行分组,以便方便邮件的发送,存储通讯录的文件还可以转存,即修改当前通讯录的存放位置。4 系统详细设计及系统实现4.1 章节内容总体介绍系统分析完成后,进入系统的设计阶段这是整个系统实现过程中非常重要的一个阶段。本章节描述了系统设计的详细过程和内容及实现过程。4.2登录模块此模块的主要功能是通过用户输入用户名和密码来判断该用户是否是本系统用户和判断用户权限的级别。系统会按照使用者提供的用户名和密码与数据库读出的数据来判断用户。若数据不匹配则会弹出输入错误提示框。如下图4-1所示。图4-1登录关键代码:public class LoginAction private String POP3Host = ; / POP3服务器private String SMTPHost = ; / SMTP服务器private String user = ; / 登录服务器的帐号private String password = ; / 登录服务器的密码private GetMail getMail = null;private SendAttachMail sendMail = null;/ 三个参数的构造方法public LoginAction(String sMTPHost, String pOP3Host, String user,String password) super();POP3Host = pOP3Host;SMTPHost = sMTPHost;this.user = user;this.password = password;/ 实例化收邮件对象getMail = GetMail.getMailInstantiate();getMail.setPOP3Host(POP3Host);getMail.setUser(user);getMail.setPassword(password);/ 实例化发邮件件对象sendMail = SendAttachMail.getSendMailInstantiate();sendMail.setSMTPHost(SMTPHost);sendMail.setUser(user);sendMail.setPassword(pass

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论