毕业设计(论文)邮件系统论文定稿.doc_第1页
毕业设计(论文)邮件系统论文定稿.doc_第2页
毕业设计(论文)邮件系统论文定稿.doc_第3页
毕业设计(论文)邮件系统论文定稿.doc_第4页
毕业设计(论文)邮件系统论文定稿.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)邮件系统论文定稿 江西科技师范学院理工学院毕业设计题目(中文):邮件系统(外文)Email System院(系)理工学院专业计算机科学与技术学生姓名夏明健学号xx8586指导教师万佩真xx年05月30日成绩毕业论文诚信声明本人郑重声明所呈交的毕业论文邮件系统是本人在指导老师的指导下,独立研究、写作的成果。 论文中所引用是他人的无论以何种方式发布的文字、研究成果,均在论文中以明确方式标明。 本声明的法律结果由本人独自承担。 着重从服务器平台安装配置和用户接口的开发方面详细阐述了整个邮件平台开发的全过程。 对开发过程中的难点进行了分析和研究,并通过系统结构图,功能模块图,配置文件,数据字典等方式形象地描述出来。 基于Web技术的邮件服务平台的开发主要包括服务器的安装配置,用户信息数据库的建立,用户访问接口程序的开发三个方面。 对于服务器需要稳定性好、安全可靠,负载能力强,对于数据库需要安全可靠、数据完整性强。 而对于用户接口应该具有能全面、友好易用等特点。 经过分析,我使用Windows XP作为Web服务器,使用james作为邮件服务器,使用mysql作为后台数据库,使用JSP、Java、HTML为用户接口开发工具,使用Java MailAPI为邮件处理程序的应用接口。 并采用了目前流行的struts2,spring,hibernate,ajax等技术,保证了用户接口程序良好的可扩展性和可维护性。 关键词james服务器;struts2;spring;hibernate;ajax技术;Java Mail1.引言1.1.电子邮件系统简述从人类社会生产开始,信息交流就一直是人类的基本需求之一。 从最早的口耳相传到现代的邮政系统和电话电报,随着技术进步,人类信息交流的手段也一直在不断进步。 计算机和网络技术出现之后,将他们应用到信息交流中,以建立更加快捷方便的信息交流手段,也就是顺理成章的事情了。 电子邮件技术正式伴随这网络和计算机技术的发展而不断成熟和发展起来的。 电子邮件是种用电子手段提供信息交换的通信方式。 在互联网上,它是应用最广的服务。 电子邮件系统则是具有处理电子邮件功能的系统。 通过网络的电子邮件系统,用户可以地,非常快的(几秒钟之内可以发送到世界上任何你指定的目的地),与世界上任何一个角落的网络用户联系。 电子邮件可以是文字、图像、声音等各种方式。 同时,用户可以得到大量的新闻、专题邮件,并实现轻松的信息搜索。 这是任何传统的方式也无法相比的。 1.2.电子邮件系统发展简史简史:让我们来看看早起的电子邮件系统。 与一般人想象的不同,其实最早的电子邮件系统早在网络形成就已经出现了。 1961年的时候,麻省理工学院在7094大型机系统上开发出了一套兼容时分共享系统(CTSS)。 这一允许许多用户同事鞥路和使用主机的新能2力,使用户可以用新的方法来共享信息。 当CTSS系统的用户需要向其它用户传递信息时,他们会在一个通用的目录下以“TO TOM”之类的文件名简历一个檔,查看或者打印其中的内容。 在这种简单的信息发送方法的基础上,出现里第一个“邮件”工具,通过这个工具,CTSS系统的管理员可以向用户发送信息,例如同志某个用户他丢失的文件已经通过备份找回。 这是通过在目录用户中创建特定的檔来实现的。 这以后,CTSS系统上也出现了用于用户之间信息传递的邮件工具。 在其它的多用户系统上,也陆续开发和使用了类似的邮件软件。 这些软件的工作原理类似,都是在用户目录下设置一个特殊的目录,一个用户给另一个用户发信时,就在收信者的牡蛎下建立一个新的檔,并在其中保存新建的内容。 当收信者稍后登陆的主机上时,检查该目录就可以知道自己有新的邮件,并可以打开和查看邮件内容。 电子邮件系统的作用:作为企业单位,拥有自己的电子邮件系统可以方便管理,可以随时开启或关闭公司职员的E-mail信箱,给每个有必要的员工分配有自己网络通讯标识(域名)的Email地址,一方面可以增加企业形象宣传力度;另一方面Email作为工作的工具或手段能为企业快速、高效的进行信息或数据的交换。 使用邮箱系统后,所有的信箱都是name企业域名这种形式,从而可以树立统一的企业品牌形象。 一些意识超前的企业单位已开始注意用E-mail来塑造和提升自己的企业形象。 总的来说,对于企业单位,电子邮件系统的最主要的作用是两个一方便企业内部的管理,二可以宣传企业品牌形象。 1.3.电子邮件系统的工作过程1)电子邮件系统识别接收者的地址,并向管理该地址的邮件服务器(POP3服务器)发送消息。 邮件服务器识将消息存放在接收者的电子信箱内,并告知接收者有新邮件到来。 接收者通过邮件客户程序连接到服务器后,就会看到服务器的通知,进而打开自己的电子信箱来查收邮件。 通常Inter上的个人用户不能直接接收电子邮件,而是通过申请ISP主机的一个电子信箱,由ISP主机负责电子邮件的接收。 一旦有用户的电子邮件到来,ISP主机就将邮件移到用户的电子信箱内,并通知用户有新邮件。 因此,当发送一条电3子邮件给一另一个客户时,电子邮件首先从用户计算机发送到ISP主机,再到Inter,再到收件人的ISP主机,最后到收件人的个人计算机。 ISP主机起着“邮局”的作用,管理着众多用户的电子信箱。 每个用户的电子信箱实际上就是用户所申请的账号名。 每个用户的电子邮件信箱都要占用ISP主机一定容量的硬盘空间,由于这一空间是有限的,因此用户要定期查收和阅读电子信箱中的邮件,以便腾出空间来接收新的邮件。 2)在发件服务器将邮件发送给收件人邮箱所在服务器这一步中,发见服务器会通过SMTP协议将邮件提交给收件服务器。 根据SMTP协议的规定,如果发件服务器无法直接连接收件服务器,可以请求其它的邮件服务器帮助进行转发。 如果转发的邮件服务器也无法连接到收件服务器,也可以有其它服务器进一步转发,以此类推,知道邮件最终到达邮件服务器,或者由于转发时间过长或转发次数过多,系统自动判定收件服务器不可能抵达为止。 这种转发的方法固然增加了邮件系统的灵活性和对网络故障的容错能力,但也造成了严重的安全隐患。 特别是许多邮件服务器对转发邮件的不加限制,任何服务器都可以通过他来转发邮件,即所谓的开放式转发。 由于在邮件头中只记录了域名信息,而没有IP地址信息,因此通过转发之后无法得知邮件初始发出的IP地址。 很多垃圾邮件制造者就利用这一点结合伪造域名信息来隐藏自己的实际发信地址。 3)邮件到达收件服务器后,收件服务器会按照系统和用户设置的规则对邮件进行处理。 例如,安装了反垃圾邮件系统的服务器首先会对邮件进行反垃圾邮件检查,通过检查的正常邮件才会被保存到用户邮箱中,再如,有些开通了短信通知的服务器会在保存邮件的同时,向用户手机发送邮件到达短信;还有,263等web邮箱会按照用户设置的过滤规则对邮件进行相应处理。 随着技术的进步和用户对邮件功能需求的不断增加,越来越多的处理步骤也被增加到这一环节中,并且绝大多数的反垃圾邮件技术都是在这一环节中应用的。 4)从上面的介绍中可以看出来,邮件的整个投递过程是一个比较复杂的过程,中间涉及客户端和服务器,以及多个服务器之间的相互协作,最终才能完成整个邮件的投递。 特别是在服务器之间的投递环节中,可能会涉及多个服务期间的投递过程。 42.电子邮件系统分析2.1.电子邮件系统的需求分析1)方便性。 电子邮件系统可以像使用留言电话一样,在自己方便的时候处理记录下来的请求,通过电子邮件可以方便地传送文本信息、图像文件、报表和计算机程序。 2)广域性。 电子邮件系统具有开放性,许多非互联网络上的用户可以通过网关(Gateway)与互联网络上的用户交换电子邮件。 3)快捷性。 电子邮件在传递过程中,若某个通信站点发现用户给出的收信人的电子邮件地址有错误而无法继续传递时,电子邮件会迅速地将原信件逐站退回,并通知不能送达的原因。 当信件送到目的地的计算机后,该计算机的电子邮件系统就立即将它放人收信人的电子信箱中,等候用户自行读取。 用户只要随时以计算机联机方式打开自己的电子邮件信箱,便可以查阅自己的邮件。 4)透明性。 电子邮件系统采用“存储转发”的方式为用户传递电子邮件,通过在互联网络的一些通信节点计算机上运行相应的软件,使这些计算机充当“邮局”的角色。 当用户希望通过互联网络给某人发送信件时,首先要与为自己提供电子邮件的计算机联机,然后把要发送的信件与收信人的电子邮件地址发给电子邮件系统。 电子邮件系统会自动地把用户的信件通过网络一站一站地送到目的地,整个过程对用户来说是透明的。 5)廉价性。 互联网络的空间几乎是无限的,公司可以将不同详细程度的有关产品、服务的信息放在网络站点上,这时顾客不仅可以随时从网上获得这些信息,而且在网上存储、发送信息的费用都低于印刷、邮寄或电话的费用。 在公司与顾客“一对一”关系的电子邮件服务中,费用低廉,从而节约大量费用。 6)全天候。 对顾客而言,电子邮件的优点之一是没有任何时间上的限制。 一天24小时,一年365天内,任何时间都可发送电子邮件。 比如,当顾客发生问题时,他们随时都可以把发生的问题发送给公司,而公司有关负责人可以在他方便的时候,查阅这些信件,决定哪些信件必须首先处理,哪些可以稍后处理,哪些应该转发给其它部门去承办。 而以前没有电子邮件时,顾客的产品本身或产品在使用过程中发生了问题,需要等到公司人员上班时,才能给公司打电话。 而且什么时候打电话也很讲究,打早了,公司负责人还没有上班,打晚了公司负责人又可能出去开会了。 5电子邮件的全天候服务,从根本上解决了这种状况,大大改善了公司与顾客的关系,改善了公司对顾客的服务。 2.2.电子邮件系统的基本结构一个邮件系统是由实现各种功能的服务器组成的功能集合。 电子邮件系统由两大部分组成,即用户代理UA和邮件传输代理MDA。 用户代理UA又称人机界面,它是用户发送和接收电子邮件的操作台和工具,用于、生成、发送、阅读和管理电子邮件。 用户对电子邮件系统的使用是通过用户代理程序完成的。 邮件传输代理MDA又称邮件服务器,主要负责邮件传送,将邮件从发送端传送到接收端,其作用相当于邮局。 邮件传输代理程序具有发送、接收和存储转发邮件的功能。 实现基于Web技术的邮件服务平台至少需要有以下几种服务器提供相应的服务功能邮件服务器。 这是电子邮件系统不可缺少的。 该服务器是实现邮件发送、接收、储存、转发的不要条件。 但是该服务器无法提供友好的访问接口。 用户虽然也可以直接访问邮件服务器,但要实现各种功能就需要记住大量复杂的命令。 所以友好的邮件系统还需要由Web服务器来提供用户访问接口。 Web服务器。 该服务器为用户提供邮件系统的访问接口,用户在远程计算机通过浏览器访问邮件系统,通过Web服务所提供的接口实现各种功能。 DNS服务器。 在电子邮件系统中还需要一种很重要的服务这就是DNS域名解析服务。 在电子邮件系统中的域名解析服务并不是为用户访问提供域名解析,而是为邮件服务器与邮件服务器之间的访问提供正确的域名解析。 将以上3种服务器联系起来就可以构建一个最基本的电子邮件系统。 2.3.构建邮件系统的准备工作2.3.1.操作系统和服务器软件的选择为了发挥各个系统的长处,我做系统的时候选择了两个操作系统,作为邮件服务平台的服务器操作系统。 Windows XP该系统虽然只是Microsoft开发的一个个人计算机操作系统,但是它采用的是Windows NT的内核,拥有较好的稳定性以及比Windows2000高得多的磁盘读写能力,所以安装上服务器软件后的Windows XP系统一样是一个很可6靠的服务器平台,更重要的是Windows XP的兼容性比Windows2000Server要好很多,各种软件在系统中都可以很好的运行,所以我们使用Windows XP作为Web服务器,以及用户接口代码的环境。 后期我将会把邮件服务器和项目部署在同一台机器上。 2.3.2.编程语言和编程环境的选择JSP是Java ServerPages的缩写,它是一种动态网页技术标准。 在传统HTML网页檔(*.htm,*.html)中加入Java程序片断(Scriptlet)和JSP标记,就构成了JSP网页(*.jsp)。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片断,然后将执行结果以HTML格式返回给客户。 程序片断可以操作数据库、可以复位向网页、可以发送和接收电子邮件等动态网页所需要的功能。 所有的程序都在服务器段执行,在通过网络传送到客户端的仅是程序执行的结果,因此对客户端浏览器的要求很低。 JSP技术功能强大、使用灵活,为创建显示动态内容的Web网页提供了一个简洁而快速的方法。 JSP技术的设计目的是使编写基于Web的应用程序更加容易和快捷的同时,保证这些应用程序能够与各种Web服务器、浏览器和开发工具共同工作。 所以我使用JSP作为我毕业设计的开发语言。 JSP对编程环境的要求不像其它语言那么苛刻,但是有个好的编程环境会让我们的工作事半功倍,我使用的编程环境是J Builder9它可以很方便的建立工程、WebApplication、Package和Servlet,还能有效地对WebApplication进行部署。 在调试的时候由于J Builder9内嵌的Tomcat和我们使用的Tomcat服务器会发生埠冲突。 所以在调试的时候我使用UltraEdit作为源代码的器。 UltraEdit支持Java,JSP,HTML和JavaScript的高亮显示,可以给我的调试工作带来了很大的方便。 2.3.3.服务器软件的选择1)Web服务器软件Tomcat是Java Servlet和Java ServerPages技术的标准实现,最初是基于Apache许可证下开发的自由软件用来给Apache提供解释JSP的功能模块。 发展到现在Tomcat不仅仅是一个JSP解释器和Servlet容器,它还具有了Web服务器的功能。 作为当今使用最广泛的Servlet/JSP服务器,它运行稳定,性能可靠,是学习和中小型企业的最佳选择。 我以我选用Tomcat作为Web服务器软件。 72)邮件服务器软件说到邮件服务器软件人们肯定会想到大名鼎鼎的Sendmail,它是最早的邮件服务器软件之一,它的功能十分强大,配置十分的繁琐,不过如果只需要一些常用的功能,它的配置还是比较方便的。 它可以轻松的是现在SMTP和POP3页以下的邮件的接收、发送、转发,而且现在各种Linux版本中都会自带Sendmail的软件包,所以在Linux下使用Sendmail作为邮件服务器软件是毫无疑问的。 然后这次因为所使用的语言是java语言,apaha公司研发的james服务器对java有很好的封装行,所以本系统使用了apaha的james服务器。 2.3.4.其它软件的选择由于开发条件的限制,我只有一台计算机进行开发,而又要实现两台计算机互联,一台使用Windows XP,另一台使用window2000。 所以在我本机上主要是用远程登录软件,实时需要的登录到服务器上对配置和服务进行更改。 3.系统的总体规划3.1.系统平台的规化整个邮件系统平台由两台计算机,4个服务器段软件组成,一台计算机安装Windows XP操作系统,上面安装Tomcat、james和SQL Serverxx作为Web服务器、邮件服务器和数据库服务器。 Web服务器为用户提供访问接口,将服务器返回的信息回馈给用户。 数据库服务器为用户的注册信息和用户登录系统时的身份认证提供数据库支持。 另外一台计算机安装window xpsp3操作系统,上面主要对系统的研发。 邮件服务器实现与邮件操作有关的所有功能,该邮件平台的系统结构图如下所示。 用户邮件平台WEB服务邮件系统提供界面功能实现反馈访问图1系统平台交互图83.2.邮件系统主要功能的设计作为一给邮件系统最基本的功能就是收发邮件,但是这还远远不够,用户访问邮件系统需要用户身份认证才能保证用户信息的安全,不能让用户面对大量的个人邮件确束手无策,因此用户邮件的管理功能也是必需的。 还有很多的功能,只要是用户想要的就应该建立此功能。 粗略的来说,邮件系统应当有以下功能邮件系统登录/注册邮件收发邮件管理通讯录管理登录注册邮件邮件浏览邮件发送邮件读取邮件删除邮件移动邮件移动地址添加地址修改地址删除图2邮件系统结构图3.2.1.登录、身份认证、新用户注册该模块包括用户的注册,系统的登录记住接口的设计。 因为所有的系统维护都是主机的系统管理员在后台进行,所以身份认证只考虑普通用户。 已注册的用户在正确输入用户名和密码以后就可以登录进入邮件列表的接口。 未注册的用户需要进入注册接口,输入新的用户名、密码以及确认密码和一些必要的用户信息才能注册,注册成功以后系统自动返回登录接口,重新登陆后方可进入系统的主接口。 3.2.2.邮件的收发该模块实现用户收发邮件的功能,包括邮件的读取功能、邮件的功能,邮件的9列表功能,邮件的转发功能,邮件的已读未读设置功能以及邮件附件的添加功能。 功能为用户提供了编写邮件的接口,用户在这个接口可以填写要发送的地址、邮件的标题、邮件的内容,添加附件,设置邮件的优先级并且可以发送邮件。 邮件列表功能可以告诉用户邮箱中有多少封邮件,有哪些是新邮件。 点击可以进入读取邮件的接口,阅读相应的邮件。 在邮件列表中还可以对邮件进行管理。 3.2.3.邮件的管理用户通过邮件管理模块可以实现邮件的删除,邮件的下载等功能。 在邮件列表接口里,每条邮件信息之前有个复选框,选择上复选框在点击删除按键就会删除所选择的邮件。 每条邮件信息内部有一个超级链接,通过点击进入邮件可以下载邮件中的附件内容。 这样用户就可以一目了然的管理自己的邮件。 3.2.4.通讯簿管理该模块的功能是说明用户管理联系人的邮件地址,可以对地址进行分类,添加、删除或修改地址。 用户在发邮件的时候可以直接从所有地址中导出他所需要的一个或多个地址。 4.系统的具体实现4.1.服务器平台的实现4.1.1.Web服务器的安装配置1.Tomcat是一个Web容器,所有的J2EE WEB程序可以在此处运行。 2.Tomcat服务器是一个符合J2EE标准的WEB服务器,而J2EE的EJB程序无法在此处运行。 3.如果要运行可以选择能够运行EJB程序的容器WebLogic、WebSphere4.tomcat下载与安装10图3下载tomcat图图4tomcat安装图11图5tomcat安装过程中设置图图6tomcat安装过程中设置图Tomcat运行的埠号8080默认埠号80则在WEB运行时不用再此输入埠号,直接敲入IP(DNS)名称即可12Tomcat使用必须依靠JDK支持JDK1.5版本如果在本机从众多的JDK中找到所需要的JDK该如何去做呢??环境变量配置右键点击“我的计算机”-“属性”-“高级”-“环境变量”进入如下图所以图7jdk环境变量的配置4.1.2.邮件服务器的安装配置1.邮件服务器下载james.apache/download.cgi13当前最新的james Server是3.0版本的,用户点击Source(ZIP Format)即可下载,本项目目前是使用apache-james-2.3.2当作邮件服务器。 2.邮件服务器配置服务器在使用前得先运行binrun.bat,运行完之后你可以看见跟bin同目录下会产生一个名为apps的檔夹,在这个文件在中你可以配置邮件服务器,因为本系统是基于sql serverxx,所以进入apache-james-2.3.2james-2.3.2appsjamesSAR-INFconfig.xml进行配置,需要配置如下:a)Postmasteryiyou.co和yiyou.其中yiyou.为邮箱账号域名的配置b)更改成这个配置是当服务器接收到邮件时将邮件保存到数据库中而不是以檔的形式保存。 c).microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver:/127.0.0.1:1433;databaseName=yiyouDBsazte-v12345620此配置服务器与数据库的链接d)将sqlserverxx的数据库连接驱动包放于apache-james-2.3.2james-2.3.2lib。 4.2.数据库的实现1数据库建立的目的建立数据库是为了给系统用户注册、用户登录时的身份认证和用户信息的保存、邮件的保存提供数据库支持。 142数据库的设计邮件系统的数据库使用的是SQL serverxx。 建立的邮件系统数据库名为yiyouDB。 我设计了四个表来保存用户的数据,因为java中hibernate框架可以自动在数据库中创建表,所以只需定义表结构的类既可,建表代码具体如下1)Users表(用户表)a)对应的java类代码package .yiyou.email.model;import java.io.Serializable;import java.util.Set;public classUsers implementsSerializableprivate String username;/用户名private String pwdHash;/加密了的密码private String pwdAlgorithm=SHA;/加密方式private String psdAlgorithm;private int useForwarding;private String forwardDestination;private int useAlias;private String alias;private Setfolders;/用户的文件夹private Setaddress_books;/用户的通讯簿public StringgetUsername()return username;public voidsetUsername(Stringusername)this.username=username;public StringgetPwdHash()return pwdHash;15public voidsetPwdHash(StringpwdHash)this.pwdHash=pwdHash;public StringgetPsdAlgorithm()return psdAlgorithm;public voidsetPsdAlgorithm(StringpsdAlgorithm)this.psdAlgorithm=psdAlgorithm;public intgetUseForwarding()return useForwarding;public voidsetUseForwarding(intuseForwarding)this.useForwarding=useForwarding;public StringgetForwardDestination()return forwardDestination;public voidsetForwardDestination(StringforwardDestination)this.forwardDestination=forwardDestination;public intgetUseAlias()return useAlias;public voidsetUseAlias(intuseAlias)this.useAlias=useAlias;public StringgetAlias()return alias;public voidsetAlias(Stringalias)this.alias=alias;public voidsetPwdAlgorithm(StringpwdAlgorithm)16this.pwdAlgorithm=pwdAlgorithm;public StringgetPwdAlgorithm()return pwdAlgorithm;public voidsetFolders(Setfolders)this.folders=folders;public SetgetFolders()return folders;public voidsetAddress_books(Setaddress_books)this.address_books=address_books;public SetgetAddress_books()return address_books;b)项目启动后在数据库中自动生成的表Username用户账号(主键)pwdHash用户密码(加了密的密码)其它字段在这不加以解释2)email_Folder表(用户邮件箱表)a)对应的java类代码package .yiyou.email.model;17import java.io.Serializable;import java.util.Set;SuppressWarnings(serial)public classFolder_Information implementsSerializableprivate String id;/主键private String folderName;/草稿;垃圾;已发送;自定义檔夹.private Users user;private Setmails;public StringgetFolderName()return folderName;public voidsetFolderName(StringfolderName)this.folderName=folderName;public voidsetMails(Setmails)this.mails=mails;public SetgetMails()return mails;public voidsetUser(Users user)this.user=user;public UsersgetUser()return user;public voidsetId(Stringid)this.id=id;18public StringgetId()return id;b)项目启动后在数据库中自动生成的表Id主键folderName:用户文件夹名称user_id:所属用户的id(外键)3)email_store邮件存储表a)对应的java类代码package .yiyou.email.model;import java.io.Serializable;import java.util.Set;public classmailModel implementsSerializableprivate int id;/作为主键private Folder_Information folder;/属于哪个folder表private Stringsender;private Stringpassword;private StringsmtpServer;private Stringrecipient;private Stringchaosong=null;private Stringmisong=null;private Stringsubject;private Stringdate;19private booleancontainFile=false;/是否含有附件private Stringcontent;private intmailSize=0;private Stringattachments;/该邮件所有的附件mingzi集private Stringsavepath;/附件路径private booleanis_New=false;(中间省去各属性的set和get方法)b)项目启动后在数据库中自动生成的表Id:主键Folder属于哪个folder表(外键)Sender发送人Password密码smtpServer发送邮件服务器recipient接收人chaosong抄送人misong密送人subject邮件主题date邮件日期containFile是否含有附件content邮件内容体20mailSize邮件大小attachments邮件所含附件的附件名集合savepath附件保存位置4)address_book(用户通讯簿表)a)对应的java类代码package .yiyou.email.model;public classAddress_Bookprivate intid;/通讯簿主键private Stringaddress_book_name;/通讯簿名称private Usersuser;/属于哪个用户private Stringaddresss;/通讯簿含有的地址public intgetId()return id;public voidsetId(intid)this.id=id;public StringgetAddress_book_name()return address_book_name;public voidsetAddress_book_name(String addressBookName)address_book_name=addressBookName;public UsersgetUser()return user;public voidsetUser(Usersuser)this.user=user;public voidsetAddresss(Stringaddresss)this.addresss=addresss;21public StringgetAddresss()return addresss;b)项目启动后在数据库中自动生成的表Id主键address_book_name通讯簿名称user属于哪个用户(外键)addresss通讯簿含有的地址4.3.系统接口4.3.1.用户登录接口用户的登录接口的代码主要在login.jsp和UserAction.java中。 login.jsp生成用户登录信息的窗体。 窗体的内容包括用户名lusername和用户密码password,为的是给UserAction,java提供用户的登录信息。 UserAction.java是一个struts2的action,struts2封装了自动收集窗体元素的值,若用户没有输入用户名和密码,则页面的js会提示用户需要输入用户名和密码。 当用户输入了用户名和密码之后点击登录,UserAction收集窗体元素的值能后查找数据库,若用户输入的用户名不正确,则系统会跑出自定义的UserNameWrongException,若输入的用户名正确而密码错误,则会抛出PasswordWrongException异常。 22图8邮件系统登录页面4.3.2.用户注册页面图9邮件系统注册页面4.3.3.邮件列表接口当用户顺利登录系统后会进入系统的欢迎接口,用户点击框架左边的收件箱就可以进入邮件列表接口。 邮件列表接口是showmail1.jsp,它所调用的action是SearchMailAction.java。 showmail1.java要连接邮件的存储,然后打开名为INBOX的活页夹。 收邮件会创建一个同邮件服务器的会话pop3Session,使用这个会话建立与邮件服务器的store连接,连接的类型为pop3由pop3Session.getStore(“pop3”)方法定义。 23通过调用Java MailAPI中提供的Floder类,使用getFolder()方法定义一个Folder变量folder,使用folder.open(Folder.READ_ONLY)设置目录的打开方式为只读,用folder.getMessageCount()方法可以获得邮箱中的邮件数量,建立一个数组message来定位邮件。 用folder.getMessages()可以获得邮箱中邮件的数量,然后通过一个循环,使用getFrom()方法和getSentData方法以及getSubject()方法,分别获取每封邮件的部分信息(包括发件人,发送时间,主题),再通过showmail1.jsp格式化输出。 图10邮件列表页面4.3.4.邮件接口邮件的接口是pose.jsp基调用的servlet是send.java。 send.java是邮件的发送程序,改程序定义了6个主要变量string变量toID用来记录收信人地址,string变量fromID用来设定发信人地址,string变量ID和bID用来记录第 2、第3收信人地址,string变量subject用来记录邮件的主题,string变量text用来记录邮件的主要内容。 在定义变量的时候需要将subject和messageText用getByte(“ISO8859_1”)方法将字符转化为邮件服务器能够识别的字符。 使用getSession()方法建立与邮件服务器的会话,用MimeMessage()创建该会话下将要发送的邮件的窗体。 然后分别用setFrom(fromID)、setRecipients(Message.RecipientType.TO,iAddr)、setSubject(subject)、setText(text)将相对应的内容添加到窗体中,再使用Transport.send把邮件发送出去。 24图11邮件页面4.3.5.邮件读取接口在邮件列表接口上选择查看就可以读取相应的邮件,这需要调用一个名为read.java的servlet。 该程序所使用的方法和send.java类似。 不一样的地方在于该程序是从邮件服务器上读取邮件的信息,并将信息格式化后输出,而send.java是获取用户输入到pose.jsp窗体中的信息。 在读取程序中我也使用到getMessages()方法,这样可以确定所要读取的邮件时那一封,同时也可以防止用户选择了不存在的邮件。 图12邮件读取页面4.3.6.对附件的处理25发送邮件中的附件就像发送邮件一样,先建立构成完整邮件的部分,在邮件正文之后,每添加一附件就需要对其处理,而不像发送邮件是统一处理。 附件是文件时,数据资源是FileDataSource。 附件是链接是数据资源是URLDataSource。 获得数据资源后,在调用setDataHandler()函数粘贴到BodyPart之前,必须传递到DataHandler构造其中。 最后用BodyPart对象的setFileName()方法把文件名和附件联系起来。 当一个邮件包含有附件时,邮件的内容是Multipart,而不是Part对象。 Multipart实力对象可以通过message.getContent取得。 通过part.getDisposition()方法取得Multipart的每一部分,通过part.getContentType()来去的附件的意向和内容类型并据此加以处理。 4.3.7.用户地址簿的处理处理用户地址簿的程序是名为addrlist的servlet程序,用户在登录系统以后可以看到地址簿的选项,点击以后就会调用该程序。 这个程序主要是对WebMail数据库addrlist表的操作。 通过定义一个字符串变量sql,将SQL语句赋值道这

温馨提示

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

评论

0/150

提交评论