一种基于java Web系统的垃圾邮件策略分析和识别系统的设计与实现含源文件.docx
《一种基于java Web系统的垃圾邮件策略分析和识别系统的设计与实现含源文件.docx》由会员分享,可在线阅读,更多相关《一种基于java Web系统的垃圾邮件策略分析和识别系统的设计与实现含源文件.docx(65页珍藏版)》请在冰点文库上搜索。
一种基于javaWeb系统的垃圾邮件策略分析和识别系统的设计与实现含源文件
毕业设计(论文)
设计(论文)题目:
一种基于javaWeb系统的垃圾邮件
策略分析和识别系统的设计与实现
学生姓名:
指导教师:
二级学院:
专 业:
班 级:
学 号:
提交日期:
答辩日期:
年月日
一种基于javaWeb系统的垃圾邮件策略分析和识别系统的设计与实现
摘要
本文主要研究基于javaWeb系统的垃圾邮件策略分析和识别系统的设计系统,首先介绍了当代国内外常用的邮箱,在针对国内邮箱对其垃圾邮件识别与拦截做调查,研究国内邮箱所常用的识别技术,在对国外技术研究,将两者进行对比。
紧接着介绍本系统研究方向,以及所使用的方法和技术,本课题设计就是处理这些垃圾邮件,通过设计来判定邮件的作用,让垃圾邮件进行自毁处理,节约空间。
让人们用起来查找邮件更加快捷方便,提高了工作效率。
在对本系统所使用的框架结构以及数据库等相关软件进行策略分析。
关键词:
JavaWeb;邮箱;垃圾邮件
BasedonJavaWebSystemSpamStrategyAnalysisandRecognitionSystemofaDesign
andImplementation
Abstract
ThispapermainlystudiesthedesignsystemofspamstrategyanalysisandrecognitionsystembasedonjavaWebsystem.Firstly,itintroducesthecommonlyusedmailboxesathomeandabroad,andconductstheinvestigationandidentificationofspammingandinterceptionindomesticmailbox.Technology,inthestudyofforeigntechnology,thetwowerecompared.Followedbytheintroductionofthesystemresearchdirection,aswellasthemethodsandtechniquesused,thesubjectdesignistodealwiththesespam,throughthedesigntodeterminetheroleofthemessage,sothatspamself-destructionprocessing,savingspace.Sothatpeopleuseuptofinde-mailmoreconvenientandefficient,improveworkefficiency.Inthesystemusedbytheframeworkofthedatabaseandotherrelatedsoftwarestrategyanalysis.
Keywords:
JavaWeb;Mailbox;SpamMail
1绪论
1.1课题研究背景
随着互联网的飞速发展,人们的交流方式从最早的通过邮件逐渐转向了即时通讯和移动通讯(QQ和微信),但是,电子邮件这种较为古老的交流方式在某些场合还拥有着不可替代的作用。
而且很多账户的注册依旧依赖邮箱作为一种重要的安全验证方式,同时我们会接到各种各样推送,无论是不是我们需要的,随着注册的越来越多,接到的推送也越来越多,也有越来越多的发错的、攻击性的邮件。
经常干扰到我们接受和阅读想要的邮件,并且我们手动处理这下垃圾邮件很浪费时间,所以本课题设计就是处理这些垃圾邮件,通过设计来判定邮件的作用,让垃圾邮件进行自毁处理,节约空间。
让人们用起来查找邮件更加快捷方便,提高了工作效率。
1.2课题研究现状
目前,电子邮件发报系统被全世界人所使用[1]。
无论是国外的Outlook、Gmail、iCloudMail还是到国内的网易邮箱、腾讯邮箱、新浪邮箱、189邮箱等等,大体功能都是一致的,目的就是为了用户之间进行电子邮件传输。
在垃圾邮件识别技术上,国外邮箱大体都是采用人工智能技术增强垃圾邮件过滤判断,而国内邮箱一般是使用黑名单技术和标题表头的无效字符识别,来进行垃圾邮件判定,显而易见国外的垃圾邮件识别技术要比国内的技术准确很多,不过现在网易邮箱等也在不断更新技术。
随着新一代的图片垃圾邮件出现,垃圾邮件过滤技术也在不断更新发展,其中对发件人主要特点识别技术、图片特点识别技术、意图分析技术等成为最新最主要的过滤研究技术[2]。
迄今为止的垃圾邮件过滤技术[3],单靠某一种技术单一手段是无法解决的,如今研究的重要技术都从单一的技术研究转移到了多重技术融合的垃圾邮件过滤技术相研究,使得多重技术整合在进行分层过滤技术成为当今垃圾邮件过滤技术的主流技术。
目前,国外在该方面的研究虽然较为靠前,但中国相关企业与高校所研究的技术也并不差[4]。
通过专利分析,可以了解相关技术的发展情况和研究的趋势,知晓国内外的研究现状。
通过学习,国内应该加大力度在技术研发上,申请研发专利,提高知识产权意识,才能更好地占据市场地位,和国外的技术以及大企业相抗衡[5]。
未来的道路还很远,需要不断探索和实践,我国科学领域也应该加大研发程度,力求创新,提高市场核心竞争力。
1.3课题研究重点和内容
基于以上现状研究、社会调查,本课题研究一个内容为:
开发一个功能齐全、系统成熟、基于B/S架构Tomcat部署、采用MySQL数据库和James服务器、针对广大用户垃圾邮件策略分析与识别系统。
课题研究重点放在垃圾邮件的过滤与识别的技术上,重视垃圾邮件的拦截技术,该拦截技术采用贝叶斯过滤器,使用贝叶斯算法,针对贝叶斯算法进行研究论证。
2系统需求分析
2.1业务需求分析
电子邮件因为在它诞生之后具有的收发便捷和成本低廉的特色得到了人们的喜爱和应用[6]。
然而,也正是因为上述两个优点,用户在享受电子邮件的便利的同时,也不得不去面对电子邮件的负面作用。
由此可以看出,越来越多的用户需要一款带有的垃圾邮件拦截功能的电子邮件系统。
而且,由目前社会行情来看,电子邮件自毁系统将会越来越受到人们的广大欢迎,并在未来相当长的一段时间内,会吸引越来越多的技术人员开发与研究。
目前,使用电子邮件系统的用户越来越多,并且不同的用户针对垃圾邮件的理解不同,大体可以分为广告邮件、乱码邮件、无效域名邮件、推荐邮件和用户自定义邮件等等,这些邮件都可以被定义为垃圾邮件,对于垃圾邮件的定义就看不同用户对邮件的理解。
通过对身边的一部分同学调研,这些同学大体上都认为垃圾邮件是:
广告邮件、乱码邮件、陌生人邮件。
通过对身边同事的调查,我对他们分成两类:
一类是对新鲜事感兴趣的,平时比较喜欢一些推送邮件,他们对乱码邮件反感,其余的都会查看一下。
另一类是平时喜欢购物的,他们对各种广告邮件非常感兴趣,随时随地查看关注的物品动态,所以广告邮件他们不认为是垃圾邮件。
而多数老师平时办公繁忙,每天要处理很多的邮件,所以他们对垃圾邮件的理解就是,只要不是好友之间发送的邮件,都称之为垃圾邮件。
针对上面调研所提出的问题,为了满足不同用户的在使用邮件系统时不必要的麻烦,并且分析了国内外对垃圾邮件拦截系统的研究现状的基础上,提出了一个基于JavaWeb系统的垃圾邮件策略分析和识别系统。
能够对接收到的邮件处理,对不同的邮件进行分类,达到垃圾邮件的关键字识别,从而达到系统拦截垃圾邮件,满足用户的需求。
系统能够实现邮件收发,真正的垃圾邮件识别与分类,通讯录好友功能,邮件分类功能,用户信息维护功能等。
根据以上观点分析,得出以下业务流程,如图2.1所示:
图2.1业务流程图
2.2功能需求分析
(1)用户对联系人或好友的要求:
用户在登录后可以查看并且可以编辑联系人信息,为了防止当联系人过多时不方便查找,所以,针对联系人应该拥有分组功能,并且用户可以对分组进行修改。
首先用户登录系统之后能够查看该用户下的所有联系人或好友,而且还能够对联系人进行操作,如:
增加、删除、修改联系人信息等。
为了对联系人或好友之间管理方便,要求对联系人进行分组,同时对分组也能够进行操作,如:
添加、删除、修改等。
为了能够快速的直接查找到联系人,用户要求快速的搜索联系人。
(2)用户对信息数据管理的要求:
用户在登录系统之后可以修改个人基本信息,如:
昵称、手机号、性别、地址等。
对密码能够进行修改,密码遗失还具有密码找回功能,并且支持密码找回数据修改。
(3)用户对电子邮件发送的要求:
用户要求能够对邮件实现发送,在发送电子邮件的基础上还应该一并的实现附件发送,同时还要能发送内容齐全的复杂度高的电子邮件,例如带有附件、邮件内容为非纯文本的邮件等。
同时在填写收件人或抄送人以及密送人的时候能够通过通讯录快速添加。
(4)用户对电子邮件浏览阅读的要求:
对接收到的邮件,用户可以通过收件箱查看邮件,浏览邮件正文同时还应该对电子邮件中的附件进行下载和正文中的图片预览。
(5)用户对垃圾邮件拦截的要求:
系统开发的总体任务是实现邮件的自毁处理功能,通过算法实现垃圾邮件的识别机制,对广告邮件、损坏邮件进行自动拦截,免去了用户手动处理,节省了很大的时间,用户体验也不会感到烦躁。
2.3性能需求分析
本系统开发的最初目的就是适用于广大的普通用户,所以在系统设计上必须遵循以下几点准则:
(1)时间特性:
系统响应时间迅速(<5s)。
(2)适应性:
在操作方式、运行环境等发生改变时,系统依旧正常运行。
(3)安全性:
只有合法用户才能登录并且使用系统,而且对每个用户都有权限设置。
对用户信息要加密,保障用户信息安全。
(4)可维护性:
采用日志记录,记录用户的操作以及错误信息,记录要清晰,方便维护人员管理维护。
3系统总体设计
3.1设计思路与方案
根据客户的需求,结合实际情况,确定了设计思路:
系统页面实现上尽量保持简单,操作起来方便,视觉上清楚明了,不会让用户有凌乱感[7]。
在后台代码上尽量的封装方法和类,使这些方法和类重复利用,减少成本,节约空间,提高代码利用率,在前端框架控件的选择上要做到通用性,能够满足在绝大部分的浏览器上运行,并且不会出现控件纰漏,这样可以确保软件的可维护性和实用性。
3.2设计方案的论证
3.2.1软件体系结构的选择
软件体系结构主要分为C/S体系结构、B/S体系结构和混合体系结构这三种。
本系统是基于JavaWeb应用开发,完全通过Web浏览器即可实现,所采用B/S体系结构。
相比较传统的C/S体系结构,B/S体系结构操作简单,交互性强,无需安装客户端,使用起来也比较方便,维护上只需升级服务器即可。
3.2.2数据库的选择则
目前,我所接触过并使用过的数据库有Oracle、SQLServer、MySQL、PostgrySQL和SQLite这五种。
Oracle和SQLServer这两款数据库是商业软件,功能很全面,数据存储量大,因为这两款数据库本身过大,安装和配置都很繁琐,不适合中小型应用使用,管理起来也不是很方便。
SQLite是一款小型数据库,功能不够齐全,比较适合Android前端开发使用,没有过多的复杂功能,管理很方便,本系统有多表关联、需要触发器监听器等,所以不适合本系统应用。
MySQL和PostgrySQL是轻量级的开源数据库,功能齐全,操作简单,体积小,速度快,跨平台,很容易上手[8]。
这两款数据库都比较适合本系统应用,之前我做的一款软件是采用PostgrySQL数据库,所以此系统我将换用MySQL数据库,MySQL数据库也是目前比较主流的轻量级数据库,很适合中小型系统开发。
3.2.3开发语言的选择
本系统是基于JavaWeb应用开发,完全通过Web浏览器即可实现,在3.2.1小节中所提到,采用的是B/S架构体系,所以开发语言选择的是Java。
而VisualC++工作量大,语句繁琐,没有Java那么多的封装类和方法使用,常用的方法都需要自己编写,所以运用起来很是麻烦。
C#语言比较适合于C/S架构开发,对于客户端模式开发很简便,界面代码不需要编写,但是,它写不出来网页的页面,不适合Web应用开发。
所以适合Web应用开发的语言就是Java,最主要是Java语言具有跨平台性、面向对象、可移植性和多线程[9]。
这些特点是其它语言所不具备的。
3.2.4开发平台的选择
本系统开发平台环境:
1.硬件环境
华硕笔记本(ASUSA550-VB):
CPU:
(英特尔)Intel(R)Core(TM)i5-3230MCPU@2.60GHz(2600Mhz)
主板:
华硕X550VB
主硬盘:
120GB(S21VNXAG794475X)
副硬盘:
1000GB日立(JD10001V0P1W)
内存:
8.00GB(1600MHz)
显示器:
友达AUO32位真彩色60Hz
显卡:
NVIDIAGeForceGT740M
声卡:
RealtekHighDefinitionAudio
网卡:
QualcommAtherosAR9485WirelessNetworkAdapter
2.软件环境
操作系统:
MicrosoftWindows10专业版(64位)
开发工具:
eclipse-jee-neon-R-win32-x86_64
数据库系统:
mysql-5.5.37-win32
数据库管理工具:
NavicatPremium_10_2
浏览器:
InternetExplorer11.0.40
MicrosoftEdge38.14393.0.0
GoogleChrome57.0.2987.110(64-bit)
MozillaFirefox52.0.2(64-bit)
Opera44.0.2510.857(PGO)
360安全浏览器8.1.1.248
UC浏览器6.1.2017.204
QQ浏览器9.5.4(10548)
本系统应用最低配置:
操作系统:
Windows7/8/8.1/10
浏览器配置:
具有Trident/Gecko/Webkit内核的浏览器
3.3系统总体设计
3.3.1系统架构设计
基于以上对业务需求的分析以及对设计方案的描述,得出本系统具有以下几点功能设计:
(1)用户登录功能。
用户通过登录功能可以安全的访问本系统,并且对给用户账号下面的邮件、联系人等进行操作,对用户资料添加安全保障。
(2)用户申请注册功能。
用户通过注册功能申请到一个xxx@格式的信箱,作为用户登录本系统的唯一标识,通过申请到的邮件账号可以安全操作本系统。
(3)用户密码找回功能。
用户密码找回功能是为了满足用户遗失密码之后能够快速的找回密码,以便于登录使用系统。
可以通过注册时所设置的密保问题来重设密码,也可以通过注册时所预留的密码提示邮箱找回密码。
(4)用户收邮件功能。
它包括收件协议,邮件阅读以及附件下载。
(5)用户发邮件功能。
通过邮件地址发送邮件,还具有转发邮件、密送邮件、抄送邮件、定时发送邮件以及附件上传等功能。
(6)用户信件处理功能。
系统预设置四个邮件分类箱[10],能过对邮件进行分类处理,预设置的四个邮箱为:
收件箱、发件箱、草稿箱和垃圾邮件。
而且每一封邮件能够在任意信箱之间相互移动。
(7)用户查找功能。
用户可以使用查找功能[11],通过关键词模糊搜索对邮件主题、邮件内容、发信人和发信地址这些内容进行查找,便于快速查找所需信件。
(8)用户信箱设置。
它包括个人基本资料修改、密码修改、密保问题及其答案修改、预留安全邮箱修改。
然后我们在此系统的基础上实现自动删除和销毁[12],通过设置时间,多久后邮件自动删除,当然对于每一封邮件都会有一个默认的时间,客户可以根据自己的需求修改自毁时间。
3.3.2系统结构设计总图
根据以上B/S架构分析和功能设计得到系统结构设计总图(图3.1所示):
图3.1系统结构设计总图
3.3.3子模块功能设计
(1)登录功能:
在首页实现登录界面,账号密码输入,并进行登录(图3.2所示)。
图3.2登录系统用例图
(2)注册功能:
通过首页注册超链接,转到注册页面,按照邮箱固定格式进行注册(图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)信箱设置:
实现个人资料修改,密码修改,参数配置,定时发信,签名设置(图3.9所示)。
图3.9信箱设置系统用例图
3.3.4系统总用例图
根据以上的系统架构模型和子模块用例图,得出总用例图(图3.10所示):
图3.10系统总用例图
4系统详细设计
4.1系统的执行流程
按功能模块划分,展示流程图:
(1)登录模块:
输入网址进入到系统登录页面,输入账号密码,首先对输入信
息的格式进行校验,校验成功后再把数据传到后台,对数据安全校验。
图4.1所示:
图4.1登录功能流程图
(2)密码找回模块:
输入网址进入登录页面,通过“忘记密码”超链接跳转到密码找回页面,输入要找回的邮箱账号对其格式校验,校验成功后输入验证码,验证码验证成功将数据传到后台,对数据进行安全校验,校验成功在跳转到下级页面选择找回密码的方式,根据所选择的找回方式进行密码重置。
图4.2所示:
图4.2密码找回功能流程图
(3)注册模块:
输入网址进入登录页面,通过“现在注册”超链接进入注册页面,按照提示信息填写内容,首先对填写信息进行格式检验,校验成功后对验证码验证,验证成功将数据传到后台,对数据进行安全校验并记录保存数据。
图4.3所示:
图4.3注册功能流程图
(4)发信模块:
输入网址进入登录页面,用户通过安全校验后进入系统首页,点击写信按钮进入写信页面,首先填写收信人地址,对其地址进行格式检验,校验成功后在填写文本内容,上传附件等。
填写完成后选择保存并发送或者存草稿箱。
图4.4所示:
图4.4发信功能流程图
(5)收信模块:
输入网址进入登录页面,用户通过安全校验后进入系统首页,点击收信按钮进入到收信箱,选择要查看的邮件进行浏览。
可以选择快速回复或者转发。
图4.5所示:
图4.5收信功能流程图
(6)垃圾邮件模块:
系统通过接收到的邮件进行自判定,对邮件进行检索敏感词汇,按照要求对邮件进行分类处理,达到垃圾邮件的拦截。
图4.6所示:
图4.6垃圾邮件功能流程图
(7)修改账户功能模块:
输入网址进入登录页面,用户通过安全校验后进入系统首页,点击个人信息按钮进入个人信息修改页面,按照用户自己需求选择要修改的内容,修改内容时对所填写的数据进行安全校验,校验成功后进行数据更改并记录。
图4.7所示:
图4.7修改账户功能功能流程图
4.2数据库设计
本系统采用MySQL数据库来对本系统的数据进行增、删、改、查等操作,在该系统的数据库中共有7张表:
用户表、登录表、密保表、收件表、发件表、草稿表、垃圾邮件表。
4.2.1数据库E-R图
(1)E-R图
图4.8E-R图
(2)关系模型
用户(用户表ID,账号,昵称,性别,出生日期)
主键:
用户表ID
外键:
账号
登录(登录表ID,账号,密码)
主键:
登录表ID
外键:
账号
密保(密保表ID,账号,密保问题,密保答案)
主键:
密保表ID
外键:
账号
收件箱(收件箱ID,账号,收件主题,已读邮件,邮件附件,接收IP地址)
主键:
收件箱ID
外键:
账号,收件主题
发件箱(发件箱ID,账号,发件主题,已发邮件,邮件附件,发送IP地址)
主键:
发件箱ID
外键:
账号,发件主题
草稿箱(草稿箱ID,账号,发件主题,草稿邮件,邮件附件)
主键:
草稿箱ID
外键:
账号,发件主题
垃圾箱(垃圾箱ID,账号,邮件主题,已删邮件,邮件附件)
主键:
垃圾箱ID
外键:
账号,邮件主题
4.2.2数据库表设计
垃圾邮件策略分析和识别系统数据库中共包含七张表,下面将分别给出这七张表的设计说明和数据表的相关内容。
(1)用户表(User)
用户表主要是用于保存用户的基本信息,包括:
表的唯一标识ID、用户的账号、昵称、性别、出生日期、用户权限和数据的删除标识。
由于该表是主表,具有很多索引,存储数据条目数量庞大,所以表ID采用了长度为20的varchar类型数据并且数据库自动生成,因为该系统使用用户量多,邮箱账号自定义且数量庞大,而邮箱账号长度限制在3到20位,所以账号采用长度为20的varcahr数据类型,昵称最长不可超过20个字符,所以采用长度为20的varcahr数据类型,性别只有男或女,使用长度为2的varcahr数据类型,出生日期将采用MySQL标准的Date类型,权限和删除标识就只有0或1两种状态,所以采用长度为1的varcahr数据类型。
由以上数据分析得出用户表(表4.1所示)。
表4.1User表
列名
数据类型
说明
描述
U_Id
varchar(20)
主键,非空,自动生成
User表ID
U_Account
varchar(20)
非空
账号
U_Name
varchar(20)
非空,默认昵称为账号ID
昵称
U_Sex
varchar
(2)
可为空
性别
U_BornDate
Date
可为空
出生日期
Permission
varchar
(1)
非空
权限
Del_flag
varchar
(1)
非空
删除标识
(2)登录表(Login)
登录表用于保存每个用户的登录信息,方便后台系统统计以及数据的维护,包括:
表的唯一标识ID、用户邮箱账号、用户登录密码、登陆时间、退出时间和删除标识。
由于该表所保存的数据庞大,所以表ID采用长度为20的varchar类型数据并且数据库自动生成,邮箱账号是User表的外键,所以邮箱账号的限定和User表中的账号一直,同为长度限制在3到20位,采用长度为20的varcahr数据类型,而用户密码限制在了4到20位,所以密码采用长度为20的varcahr数据类型,登录时间和退出时间将采用MySQL标准时间datetime类型,精确到秒,删除标识只有0或1两种状态,采用长度为1的varcahr数据类型。
由以上数据分析得出登录表(表4.2所示)。
表4.2Login表
列名
数据类型
说明
描述
L_Id
varchar(20)
主键,非空,自动生成
login表ID
U_Account
varchar(20)
非空
账