1、金陵科技学院学士学位论文第3章 系统总体设计 毕 业 设 计(论 文)设计(论文)题目:一种基于java Web系统的垃圾邮件 策略分析和识别系统的设计与实现 学生姓名: 指导教师: 二级学院: 专业: 班级: 学号: 提交日期: 答辩日期: 年 月 日 53金陵科技学院学士学位论文目录目 录摘 要IVAbstractV1 绪 论11。1 课题研究背景11.2 课题研究现状11。3 课题研究重点和内容22 系统需求分析32.1 业务需求分析32.2 功能需求分析42。3 性能需求分析43 系统总体设计63。1 设计思路与方案63.2 设计方案的论证63。2。1 软件体系结构的选择63。2.2
2、数据库的选择则63.2.3 开发语言的选择63.2。4 开发平台的选择73。3 系统总体设计83.3。1 系统架构设计83。3.2 系统结构设计总图93。3。3 子模块功能设计93。3。4 系统总用例图124 系统详细设计134.1 系统的执行流程134。2 数据库设计194。2。1 数据库ER图194。2。2 数据库表设计204。3 B/S架构程序设计234.3。1 登录模块设计234。3。2 找密模块设计244。3。3 注册功能设计264.3.4 通讯录功能设计274.3。5 修改账户功能设计284.3.6 发信功能设计294。3。7 收信功能设计304.3。8 邮件拦截功能设计324。3
3、.9 邮件删除功能设计355 系统实现365。1 主要界面设计及编码实现365。1。1 登录模块设计365.1。2 找密模块设计375。1。3 注册功能设计405。1。4 通讯录功能设计425。1。5 修改账户功能设计435。1。6 发信功能设计465。1。7 收信功能设计475.1.8 邮件拦截功能设计485。1。9 邮件删除功能设计495。2 系统部署506 系统调试与测试526.1 系统调试526.2 系统测试526。2.1 兼容性测试526.2。2 运行测试536。2.3 安全性测试547 结 论55参考文献56致 谢57一种基于java Web系统的垃圾邮件策略分析和识别 系统的设计
4、与实现摘 要本文主要研究基于java Web系统的垃圾邮件策略分析和识别系统的设计系统,首先介绍了当代国内外常用的邮箱,在针对国内邮箱对其垃圾邮件识别与拦截做调查,研究国内邮箱所常用的识别技术,在对国外技术研究,将两者进行对比。紧接着介绍本系统研究方向,以及所使用的方法和技术,本课题设计就是处理这些垃圾邮件,通过设计来判定邮件的作用,让垃圾邮件进行自毁处理,节约空间。让人们用起来查找邮件更加快捷方便,提高了工作效率。在对本系统所使用的框架结构以及数据库等相关软件进行策略分析.关键词:Java Web;邮箱;垃圾邮件Based on Java Web System Spam Strategy A
5、nalysis and Recognition System of a Designand ImplementationAbstractThis paper mainly studies the design system of spam strategy analysis and recognition system based on java Web system. Firstly, it introduces the commonly used mailboxes at home and abroad, and conducts the investigation and identif
6、ication of spamming and interception in domestic mailbox。 Technology, in the study of foreign technology, the two were compared. Followed by the introduction of the system research direction, as well as the methods and techniques used, the subject design is to deal with these spam, through the desig
7、n to determine the role of the message, so that spam selfdestruction processing, saving space。 So that people use up to find e-mail more convenient and efficient, improve work efficiency。 In the system used by the framework of the database and other related software strategy analysis。Key words: Java
8、 Web;Mailbox;Spam Mail金陵科技学院学士学位论文第1章 绪论1 绪 论1。1 课题研究背景随着互联网的飞速发展,人们的交流方式从最早的通过邮件逐渐转向了即时通讯和移动通讯(QQ和微信),但是,电子邮件这种较为古老的交流方式在某些场合还拥有着不可替代的作用。而且很多账户的注册依旧依赖邮箱作为一种重要的安全验证方式,同时我们会接到各种各样推送,无论是不是我们需要的,随着注册的越来越多,接到的推送也越来越多,也有越来越多的发错的、攻击性的邮件。经常干扰到我们接受和阅读想要的邮件,并且我们手动处理这下垃圾邮件很浪费时间,所以本课题设计就是处理这些垃圾邮件,通过设计来判定邮件的作用,
9、让垃圾邮件进行自毁处理,节约空间。让人们用起来查找邮件更加快捷方便,提高了工作效率。1。2 课题研究现状目前,电子邮件发报系统被全世界人所使用1.无论是国外的Outlook、Gmail、iCloudMail还是到国内的网易邮箱、腾讯邮箱、新浪邮箱、189邮箱等等,大体功能都是一致的,目的就是为了用户之间进行电子邮件传输.在垃圾邮件识别技术上,国外邮箱大体都是采用人工智能技术增强垃圾邮件过滤判断,而国内邮箱一般是使用黑名单技术和标题表头的无效字符识别,来进行垃圾邮件判定,显而易见国外的垃圾邮件识别技术要比国内的技术准确很多,不过现在网易邮箱等也在不断更新技术。随着新一代的图片垃圾邮件出现,垃圾邮
10、件过滤技术也在不断更新发展,其中对发件人主要特点识别技术、图片特点识别技术、意图分析技术等成为最新最主要的过滤研究技术2。迄今为止的垃圾邮件过滤技术3,单靠某一种技术单一手段是无法解决的,如今研究的重要技术都从单一的技术研究转移到了多重技术融合的垃圾邮件过滤技术相研究,使得多重技术整合在进行分层过滤技术成为当今垃圾邮件过滤技术的主流技术。目前,国外在该方面的研究虽然较为靠前,但中国相关企业与高校所研究的技术也并不差4。通过专利分析,可以了解相关技术的发展情况和研究的趋势,知晓国内外的研究现状。通过学习,国内应该加大力度在技术研发上,申请研发专利,提高知识产权意识,才能更好地占据市场地位,和国外
11、的技术以及大企业相抗衡5。未来的道路还很远,需要不断探索和实践,我国科学领域也应该加大研发程度,力求创新,提高市场核心竞争力.1。3 课题研究重点和内容基于以上现状研究、社会调查,本课题研究一个内容为:开发一个功能齐全、系统成熟、基于B/S架构Tomcat部署、采用MySQL数据库和James服务器、针对广大用户垃圾邮件策略分析与识别系统。课题研究重点放在垃圾邮件的过滤与识别的技术上,重视垃圾邮件的拦截技术,该拦截技术采用贝叶斯过滤器,使用贝叶斯算法,针对贝叶斯算法进行研究论证。金陵科技学院学士学位论文第2章 系统需求分析2 系统需求分析2。1 业务需求分析电子邮件因为在它诞生之后具有的收发便
12、捷和成本低廉的特色得到了人们的喜爱和应用6.然而,也正是因为上述两个优点,用户在享受电子邮件的便利的同时,也不得不去面对电子邮件的负面作用.由此可以看出,越来越多的用户需要一款带有的垃圾邮件拦截功能的电子邮件系统。而且,由目前社会行情来看,电子邮件自毁系统将会越来越受到人们的广大欢迎,并在未来相当长的一段时间内,会吸引越来越多的技术人员开发与研究。目前,使用电子邮件系统的用户越来越多,并且不同的用户针对垃圾邮件的理解不同,大体可以分为广告邮件、乱码邮件、无效域名邮件、推荐邮件和用户自定义邮件等等,这些邮件都可以被定义为垃圾邮件,对于垃圾邮件的定义就看不同用户对邮件的理解.通过对身边的一部分同学
13、调研,这些同学大体上都认为垃圾邮件是:广告邮件、乱码邮件、陌生人邮件。通过对身边同事的调查,我对他们分成两类:一类是对新鲜事感兴趣的,平时比较喜欢一些推送邮件,他们对乱码邮件反感,其余的都会查看一下。另一类是平时喜欢购物的,他们对各种广告邮件非常感兴趣,随时随地查看关注的物品动态,所以广告邮件他们不认为是垃圾邮件。而多数老师平时办公繁忙,每天要处理很多的邮件,所以他们对垃圾邮件的理解就是,只要不是好友之间发送的邮件,都称之为垃圾邮件.针对上面调研所提出的问题,为了满足不同用户的在使用邮件系统时不必要的麻烦,并且分析了国内外对垃圾邮件拦截系统的研究现状的基础上,提出了一个基于Java Web系统
14、的垃圾邮件策略分析和识别系统。 能够对接收到的邮件处理,对不同的邮件进行分类,达到垃圾邮件的关键字识别,从而达到系统拦截垃圾邮件,满足用户的需求。系统能够实现邮件收发,真正的垃圾邮件识别与分类,通讯录好友功能,邮件分类功能,用户信息维护功能等.根据以上观点分析,得出以下业务流程,如图2。1所示:图2.1 业务流程图2.2 功能需求分析(1)用户对联系人或好友的要求:用户在登录后可以查看并且可以编辑联系人信息,为了防止当联系人过多时不方便查找,所以,针对联系人应该拥有分组功能,并且用户可以对分组进行修改。首先用户登录系统之后能够查看该用户下的所有联系人或好友,而且还能够对联系人进行操作,如:增加
15、、删除、修改联系人信息等。为了对联系人或好友之间管理方便,要求对联系人进行分组,同时对分组也能够进行操作,如:添加、删除、修改等。为了能够快速的直接查找到联系人,用户要求快速的搜索联系人。(2)用户对信息数据管理的要求:用户在登录系统之后可以修改个人基本信息,如:昵称、手机号、性别、地址等。对密码能够进行修改,密码遗失还具有密码找回功能,并且支持密码找回数据修改。(3)用户对电子邮件发送的要求:用户要求能够对邮件实现发送,在发送电子邮件的基础上还应该一并的实现附件发送,同时还要能发送内容齐全的复杂度高的电子邮件,例如带有附件、邮件内容为非纯文本的邮件等。同时在填写收件人或抄送人以及密送人的时候
16、能够通过通讯录快速添加。(4)用户对电子邮件浏览阅读的要求:对接收到的邮件,用户可以通过收件箱查看邮件,浏览邮件正文同时还应该对电子邮件中的附件进行下载和正文中的图片预览。(5)用户对垃圾邮件拦截的要求:系统开发的总体任务是实现邮件的自毁处理功能,通过算法实现垃圾邮件的识别机制,对广告邮件、损坏邮件进行自动拦截,免去了用户手动处理,节省了很大的时间,用户体验也不会感到烦躁.2。3 性能需求分析本系统开发的最初目的就是适用于广大的普通用户,所以在系统设计上必须遵循以下几点准则:(1)时间特性:系统响应时间迅速(5s)。(2)适应性: 在操作方式、运行环境等发生改变时,系统依旧正常运行.(3)安全
17、性:只有合法用户才能登录并且使用系统,而且对每个用户都有权限设置。对用户信息要加密,保障用户信息安全。(4)可维护性:采用日志记录,记录用户的操作以及错误信息,记录要清晰,方便维护人员管理维护。金陵科技学院学士学位论文第3章 系统总体设计3 系统总体设计3。1 设计思路与方案根据客户的需求,结合实际情况,确定了设计思路:系统页面实现上尽量保持简单,操作起来方便,视觉上清楚明了,不会让用户有凌乱感7。在后台代码上尽量的封装方法和类,使这些方法和类重复利用,减少成本,节约空间,提高代码利用率,在前端框架控件的选择上要做到通用性,能够满足在绝大部分的浏览器上运行,并且不会出现控件纰漏,这样可以确保软
18、件的可维护性和实用性。3。2 设计方案的论证3。2。1 软件体系结构的选择软件体系结构主要分为C/S体系结构、B/S体系结构和混合体系结构这三种。本系统是基于JavaWeb应用开发,完全通过Web浏览器即可实现,所采用B/S体系结构。相比较传统的C/S体系结构,B/S体系结构操作简单,交互性强,无需安装客户端,使用起来也比较方便,维护上只需升级服务器即可。3.2。2 数据库的选择则目前,我所接触过并使用过的数据库有Oracle、SQL Server、MySQL、PostgrySQL和SQLite这五种.Oracle和SQL Server这两款数据库是商业软件,功能很全面,数据存储量大,因为这两
19、款数据库本身过大,安装和配置都很繁琐,不适合中小型应用使用,管理起来也不是很方便。SQLite是一款小型数据库,功能不够齐全,比较适合Android前端开发使用,没有过多的复杂功能,管理很方便,本系统有多表关联、需要触发器监听器等,所以不适合本系统应用.MySQL和PostgrySQL是轻量级的开源数据库,功能齐全,操作简单,体积小,速度快,跨平台,很容易上手8。这两款数据库都比较适合本系统应用,之前我做的一款软件是采用PostgrySQL数据库,所以此系统我将换用MySQL数据库,MySQL数据库也是目前比较主流的轻量级数据库,很适合中小型系统开发。3。2。3 开发语言的选择本系统是基于Ja
20、vaWeb应用开发,完全通过Web浏览器即可实现,在3。2.1小节中所提到,采用的是B/S架构体系,所以开发语言选择的是Java.而Visual C+工作量大,语句繁琐,没有Java那么多的封装类和方法使用,常用的方法都需要自己编写,所以运用起来很是麻烦。C语言比较适合于C/S架构开发,对于客户端模式开发很简便,界面代码不需要编写,但是,它写不出来网页的页面,不适合Web应用开发.所以适合Web应用开发的语言就是Java,最主要是Java语言具有跨平台性、面向对象、可移植性和多线程9。这些特点是其它语言所不具备的.3。2.4 开发平台的选择本系统开发平台环境:1。硬件环境华硕笔记本(ASUS
21、A550VB):CPU:(英特尔)Intel(R) Core(TM) i53230M CPU 2。60GHz(2600 Mhz)主板:华硕 X550VB主硬盘:120GB(S21VNXAG794475X )副硬盘:1000GB日立(JD10001V0P1W)内存:8。00GB(1600 MHz)显示器:友达 AUO 32位真彩色 60Hz显卡:NVIDIA GeForce GT 740M声卡:Realtek High Definition Audio网卡:Qualcomm Atheros AR9485 Wireless Network Adapter2.软件环境操作系统:Microsoft W
22、indows 10 专业版 (64位)开发工具:eclipse-jee-neon-Rwin32-x86_64数据库系统:mysql-5。5。37win32数据库管理工具:Navicat Premium_10_2浏览器:Internet Explorer 11。0。40 Microsoft Edge 38。14393.0。0 Google Chrome 57.0.2987。110 (64-bit) Mozilla Firefox 52。0.2 (64-bit) Opera 44。0。2510。857 (PGO) 360安全浏览器 8.1。1。248 UC浏览器 6.1。2017。204 QQ浏览
23、器 9。5。4(10548)本系统应用最低配置:操作系统:Windows7/8/8。1/10浏览器配置:具有Trident/Gecko/Webkit内核的浏览器3.3 系统总体设计3。3。1 系统架构设计基于以上对业务需求的分析以及对设计方案的描述,得出本系统具有以下几点功能设计:(1)用户登录功能.用户通过登录功能可以安全的访问本系统,并且对给用户账号下面的邮件、联系人等进行操作,对用户资料添加安全保障。(2)用户申请注册功能.用户通过注册功能申请到一个xxxby。com格式的信箱,作为用户登录本系统的唯一标识,通过申请到的邮件账号可以安全操作本系统。(3)用户密码找回功能。用户密码找回功能
24、是为了满足用户遗失密码之后能够快速的找回密码,以便于登录使用系统.可以通过注册时所设置的密保问题来重设密码,也可以通过注册时所预留的密码提示邮箱找回密码。(4)用户收邮件功能。它包括收件协议,邮件阅读以及附件下载。(5)用户发邮件功能。通过邮件地址发送邮件,还具有转发邮件、密送邮件、抄送邮件、定时发送邮件以及附件上传等功能.(6)用户信件处理功能.系统预设置四个邮件分类箱10,能过对邮件进行分类处理,预设置的四个邮箱为:收件箱、发件箱、草稿箱和垃圾邮件。而且每一封邮件能够在任意信箱之间相互移动。(7)用户查找功能.用户可以使用查找功能11,通过关键词模糊搜索对邮件主题、邮件内容、发信人和发信地
25、址这些内容进行查找,便于快速查找所需信件.(8)用户信箱设置.它包括个人基本资料修改、密码修改、密保问题及其答案修改、预留安全邮箱修改。然后我们在此系统的基础上实现自动删除和销毁12,通过设置时间,多久后邮件自动删除,当然对于每一封邮件都会有一个默认的时间,客户可以根据自己的需求修改自毁时间.3。3.2 系统结构设计总图根据以上B/S架构分析和功能设计得到系统结构设计总图(图3。1所示):图3.1 系统结构设计总图3.3。3 子模块功能设计(1)登录功能:在首页实现登录界面,账号密码输入,并进行登录(图3。2所示)。图3。2 登录系统用例图(2)注册功能:通过首页注册超链接,转到注册页面,按照
26、邮箱固定格式进行注册(图3。3所示)。图3。3 注册系统用例图(3)找密功能:通过首页密码找回超链接,转到密码找回功能,通过密保验证重设密码(图3.4所示)。图3。4 找密系统用例图(4)发件功能:通过SMTP协议发送邮件(图3.5所示)。图3.5 发件系统用例图(5)收件功能:通过POP3协议接收邮件(图3.6所示)。图3。6 收件系统用例图(6)信件处理功能:实现收件箱、发件箱、草稿箱和垃圾邮件的邮件存储(图3。7所示)。图3。7 信件处理系统用例图(7)垃圾邮件识别功能:通过大量的邮件让贝叶斯算法进行“学习”,实现垃圾邮件的拦截(图3.8所示).图3。8 垃圾邮件识别系统用例图(8)信箱
27、设置:实现个人资料修改,密码修改,参数配置,定时发信,签名设置(图3。9所示)。图3。9 信箱设置系统用例图3。3.4 系统总用例图根据以上的系统架构模型和子模块用例图,得出总用例图(图3。10所示):图3.10 系统总用例图金陵科技学院学士学位论文第4章 系统详细设计4 系统详细设计4.1 系统的执行流程 按功能模块划分,展示流程图:(1)登录模块:输入网址进入到系统登录页面,输入账号密码,首先对输入信息的格式进行校验,校验成功后再把数据传到后台,对数据安全校验。图4.1所示:图4.1 登录功能流程图(2)密码找回模块:输入网址进入登录页面,通过“忘记密码”超链接跳转到密码找回页面,输入要找
28、回的邮箱账号对其格式校验,校验成功后输入验证码,验证码验证成功将数据传到后台,对数据进行安全校验,校验成功在跳转到下级页面选择找回密码的方式,根据所选择的找回方式进行密码重置。图4。2所示:图4。2 密码找回功能流程图(3)注册模块:输入网址进入登录页面,通过“现在注册超链接进入注册页面,按照提示信息填写内容,首先对填写信息进行格式检验,校验成功后对验证码验证,验证成功将数据传到后台,对数据进行安全校验并记录保存数据.图4.3所示:图4.3 注册功能流程图(4)发信模块:输入网址进入登录页面,用户通过安全校验后进入系统首页,点击写信按钮进入写信页面,首先填写收信人地址,对其地址进行格式检验,校
29、验成功后在填写文本内容,上传附件等。填写完成后选择保存并发送或者存草稿箱.图4。4所示:图4.4 发信功能流程图(5)收信模块:输入网址进入登录页面,用户通过安全校验后进入系统首页,点击收信按钮进入到收信箱,选择要查看的邮件进行浏览。可以选择快速回复或者转发。图4.5所示:图4。5 收信功能流程图(6)垃圾邮件模块:系统通过接收到的邮件进行自判定,对邮件进行检索敏感词汇,按照要求对邮件进行分类处理,达到垃圾邮件的拦截.图4。6所示:图4.6 垃圾邮件功能流程图(7)修改账户功能模块:输入网址进入登录页面,用户通过安全校验后进入系统首页,点击个人信息按钮进入个人信息修改页面,按照用户自己需求选择
30、要修改的内容,修改内容时对所填写的数据进行安全校验,校验成功后进行数据更改并记录。图4。7所示:图4.7 修改账户功能功能流程图4。2 数据库设计本系统采用MySQL数据库来对本系统的数据进行增、删、改、查等操作,在该系统的数据库中共有7张表: 用户表、登录表、密保表、收件表、发件表、草稿表、垃圾邮件表.4。2.1 数据库ER图(1)ER图图4。8 ER图(2)关系模型用户(用户表ID,账号,昵称,性别,出生日期) 主键:用户表ID 外键:账号登录(登录表ID,账号,密码) 主键:登录表ID 外键:账号密保(密保表ID,账号,密保问题,密保答案) 主键:密保表ID 外键:账号收件箱(收件箱ID
31、,账号,收件主题,已读邮件,邮件附件,接收IP地址) 主键:收件箱ID 外键:账号,收件主题发件箱(发件箱ID,账号,发件主题,已发邮件,邮件附件,发送IP地址) 主键:发件箱ID 外键:账号,发件主题草稿箱(草稿箱ID,账号,发件主题,草稿邮件,邮件附件) 主键:草稿箱ID 外键:账号,发件主题垃圾箱(垃圾箱ID,账号,邮件主题,已删邮件,邮件附件) 主键:垃圾箱ID 外键:账号,邮件主题4。2。2 数据库表设计垃圾邮件策略分析和识别系统数据库中共包含七张表,下面将分别给出这七张表的设计说明和数据表的相关内容。(1)用户表(User)用户表主要是用于保存用户的基本信息,包括:表的唯一标识ID
32、、用户的账号、昵称、性别、出生日期、用户权限和数据的删除标识。由于该表是主表,具有很多索引,存储数据条目数量庞大,所以表ID采用了长度为20的varchar类型数据并且数据库自动生成,因为该系统使用用户量多,邮箱账号自定义且数量庞大,而邮箱账号长度限制在3到20位,所以账号采用长度为20的varcahr数据类型,昵称最长不可超过20个字符,所以采用长度为20的varcahr数据类型,性别只有男或女,使用长度为2的varcahr数据类型,出生日期将采用MySQL标准的Date类型,权限和删除标识就只有0或1两种状态,所以采用长度为1的varcahr数据类型。由以上数据分析得出用户表(表4.1所示
33、)。表4。1 User表列名数据类型说明描述U_Idvarchar(20)主键,非空,自动生成User表IDU_Accountvarchar(20)非空账号U_Namevarchar(20)非空,默认昵称为账号ID昵称U_Sexvarchar(2)可为空性别U_BornDateDate可为空出生日期Permissionvarchar(1)非空权限Del_flagvarchar(1)非空删除标识(2)登录表(Login)登录表用于保存每个用户的登录信息,方便后台系统统计以及数据的维护,包括:表的唯一标识ID、用户邮箱账号、用户登录密码、登陆时间、退出时间和删除标识。由于该表所保存的数据庞大,所以
34、表ID采用长度为20的varchar类型数据并且数据库自动生成,邮箱账号是User表的外键,所以邮箱账号的限定和User表中的账号一直,同为长度限制在3到20位,采用长度为20的varcahr数据类型,而用户密码限制在了4到20 位,所以密码采用长度为20的varcahr数据类型,登录时间和退出时间将采用MySQL标准时间datetime类型,精确到秒,删除标识只有0或1两种状态,采用长度为1的varcahr数据类型.由以上数据分析得出登录表(表4。2所示)。表4。2 Login表列名数据类型说明描述L_Idvarchar(20)主键,非空,自动生成login表IDU_Accountvarch
35、ar(20)非空账号U_Passwordvarchar(20)非空密码Del_flagvarchar(1)非空删除标识Login_Datedatetime(6)非空,自动获取登录时间Exit_Datedatetime(6)非空,自动获取退出时间(3)密保表密保表保存每一位用户的密保问题及其答案,用于用户找回密码,包括:表的唯一标识ID、用户邮箱账号、密保问题、密保答案和删除标识。由于该表存储数据庞大,所以表ID采用长度为20的varchar类型数据并且数据库自动生成,邮箱账号的限定与User表中的账号一直,所以长度限制在3到20位,采用长度为20的varcahr数据类型,密保问题和密保答案是纯
36、文本格式并没有做限定,所以将采用长度为64的varcahr数据类型,删除标识只有0或1两种状态,采用长度为1的varcahr数据类型.由以上数据分析得出密保表(表4。3所示)。表4。3 Protection表列名数据类型说明描述P_Idvarchar(20)主键,非空,自动生成protection表IDU_Accountvarchar(20)非空账号P_Questionvarchar(64)非空密保问题P_Answersvarchar(64)非空密保答案Del_flagvarchar(1)非空删除标识(4)收件表收件表用于存放用户接收到的邮件,包括表的唯一标识ID、用户邮箱账号、收件主题、邮件
37、正文的URL、邮件附件的URL、发件人的IP地址和删除标识。由于该表存储数据量庞大,所以表ID采用长度为20的varchar类型数据并且数据库自动生成,邮箱账号与User表中的账号限定一致,长度限制在3到20位,采用长度为20的varcahr数据类型,收件主题一般都是短短的纯文本,所以采用长度为20的varcahr数据类型,邮件正文、邮件附件和发件人的IP地址存放的都是URL,所以将采用长度为64的varcahr数据类型,删除标识只有0或1两种状态,采用长度为1的varcahr数据类型。由以上数据分析得出收件表(表4.4所示)。表4.4 Inbox表列名数据类型说明描述I_Idvarchar(
38、20)主键,非空,自动生成inbox表IDU_Accountvarchar(20)非空账号I_Topicvarchar(20)非空收件主题I_Mailvarchar(64)可空已读邮件I_Adjunctvarchar(64)可空邮件附件I_MailAddressvarchar(64)非空接收IP地址Del_flagvarchar(1)非空删除标识(5)发件表发件箱表与收件箱表大体相同,用于存放用户已发出的邮件,包括:包括表的唯一标识ID、用户邮箱账号、发件主题、邮件正文的URL、邮件附件的URL、收件人的IP地址和删除标识。由于该表需要存储数据信息庞大,所以表ID采用长度为20的varchar
39、类型数据并且数据库自动生成,邮箱账号限定与User表中的邮箱账号一致,长度限制在3到20位,采用长度为20的varcahr数据类型,发件主题与收件主题一致一般都是短短的纯文本,所以采用长度为20的varcahr数据类型,邮件正文、邮件附件和收件人的IP地址存放的都是URL,所以将采用长度为64的varcahr数据类型。删除标识只有0或1两种状态,采用长度为1的varcahr数据类型。由以上数据分析得出发件表(表4。5所示)。表4.5 Outbox表列名数据类型说明描述O_Idvarchar(20)主键,非空,自动生成outbox表IDU_Accountvarchar(20)非空账号O_Topi
40、cvarchar(20)非空发件主题O_Mailvarchar(64)可空已发邮件O_Adjunctvarchar(64)可空邮件附件O_MailAddressvarchar(64)非空发送IP地址Del_flagvarchar(1)非空删除标识(6)草稿表草稿表用于存放用户编写的邮件,包括表的唯一标识ID、用户邮箱账号、邮件主题、邮件正文的URL、邮件附件的URL和删除标识。由于该表需要存储数据信息庞大,所以表ID采用长度为20的varchar类型数据并且数据库自动生成,邮箱账号限定与User表中的账号一致,长度限制在3到20位,采用长度为20的varcahr数据类型,邮件主题与收件主题一致
41、一般都是短短的纯文本,所以采用长度为20的varcahr数据类型.邮件正文、邮件附件存放的都是URL,所以将采用长度为64的varcahr数据类型.删除标识只有0或1两种状态,采用长度为1的varcahr数据类型。由以上数据分析得出草稿表(表4.6所示).表4。6 Manuscript表列名数据类型说明描述M_Idvarchar(20)主键,非空,自动生成manuscript表IDU_Accountvarchar(20)非空账号M_Topicvarchar(20)非空邮件主题M_Mailvarchar(64)可空草稿邮件M_ Adjunctvarchar(64)可空邮件附件Del_flagva
42、rchar(1)非空删除标识(7)垃圾邮件表垃圾邮件表同草稿表一样用于存放用户删除的邮件,包括表的唯一标识ID、用户邮箱账号、邮件主题、邮件正文的URL、邮件附件的URL和删除标识。由于该表存储数据信息庞大,所以表ID采用长度为20的varchar类型数据并且数据库自动生成,邮箱账号限定与User表中的邮箱账号一致,长度限制在3到20位,采用长度为20的varcahr数据类型,邮件主题与收件主题一致一般都是短短的纯文本,所以采用长度为20的varcahr数据类型。邮件正文、邮件附件存放的都是URL,所以将采用长度为64的varcahr数据类型。删除标识只有0或1两种状态,采用长度为1的varc
43、ahr数据类型。由以上数据分析得出垃圾邮件表(表4。7所示)。表4。7 Dustbin表列名数据类型说明描述D_Idvarchar(20)主键,非空,自动生成dustbin表IDU_Accountvarchar(20)非空账号D_Topicvarchar(20)非空邮件主题D_Mailvarchar(64)可空已删邮件D_ Adjunctvarchar(64)可空邮件附件Del_flagvarchar(1)非空删除标识4。3 B/S架构程序设计4。3.1 登录功能设计系统登录模块主要针对用户登录“垃圾邮件策略分析与识别系统”进行安全性与合法性检查,防止对非法用户进入该系统14。在登录时,只有对
44、已存在的、合法的、有效的用户才可以进入本系统。在登录控制时分为两部分2:首先,在前端界面上对用户输入的数据进行格式校验,看其格式是否合法,如果检验通过,则向下进行,将输入的数据通过控制程序传入到后台,与数据库中数据进行比较,如果数据比对成功则登陆成功进入系统主页面,否则需要重新输出邮箱账号和密码,进行重新验证。具体操作流程可以参考图4。1登录模块流程图,用户登录电子邮件系统的序列图如图4。9所示.业务逻辑实现类类图如图4。10所示,核心编码实现将在5.1。1节描述.图4。9 登录功能序列图图4。10 登录功能类图4。3。2 密码找回功能设计找密功能设计主要是为了用户在忘记密码时,通过找密功能可
45、以安全找回密码。用户找回密码分为两种方式,第一种是通过回答安全问题找回密码,第二种是通过安全邮箱重置密码15.通过安全问题找回密码是用户输入安全问题的答案,将答案传到后台与数据库中数据校验,校验成功时用户可以填写新的密码.安全邮箱找回密码是通过FindPwdEmail类中的createPwd()方法随机生成的六位的字母和数字的组合密码,然后发送到安全邮箱中,作为下次登录的新密码。用户找回密码可以分为三步16,第一步:首先对邮箱账号检测,看该账号是否存在,如果存在则执行第二步.第二步:选择找回密码方式,根据个人喜好不同,可以选择回答安全问题找回密码,也可以选择向预留安全邮箱发送随机密码,进行重置密码。第三步:返回登录页面,通过重置的新密码进行登录系统。用户找回密码检查邮箱账号序列图如图4.11所示。具体操作流程可以参考图4。3找密模块流程图,页面设计与相关编码实现将在5。1。2节描述。图4。11 用户找回密码检查邮箱账号序列图通过回答安全问题找回密码的序列图如图4.12所示.图4。12 安全问题找回密码序列图通过安全邮箱重置密码的序列图如图4。13所示.图4.13 安全邮箱找回密码序列图业务逻辑实现类类图如图4.14所示。图4。14 密码找回功能类图4.3。3 注册功能设计注册功能设计目的是为