基于贝叶斯算法的邮件过滤管理系统的设计和实现(Vue+SpringBoot)(二)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 基于贝叶斯算法的邮件过滤管理系统的设计和实现(Vue+SpringBoot)

2 系统所需技术框架的研究

2.1 系统技术栈的说明和介绍

该系统通过JAVA技术平台进行研发和创新,采用的是MVC模式。其中使用Spring、SpringBoot等开源框架进行后端开发,使用Vue框架构建前端,使用MySQL数据库存储数据,使用Tomcat作为服务器。下文将详细介绍使用的技术。

2.1.1 Spring

Spring是一种十分有用的开源框架,其主要优点包括:

  1. 简化开发。通过容器的控制,能够大大减少程序之间的耦合。
  2. 测试程序方便。在进行测试时,我们可以用与容器无关的方式完成测试工作。
  3. 支持AOP编程。Spring中支持的aop面向切面编程能够让我们的编程变得更加方便。
  4. 声明式事务支持。Spring能够让我们用声明式的方式对事务进行管理和声明,提高了开发效率。
  5. 方便集成各种优秀框架,Spring提供了对各种优秀框架的直接支持。

2.1.2 SpringBoot

如果过去使用Spring MVC + Spring + Mybatis框架进行开发,则需要构建和集成三个主要框架,Web.xml配置,Spring配置,Mybatis配置,有了它们的集成就可以很好地工作。而 Spring引导框架彻底改变了该开发过程,由于xml的配置过程的复杂性,所以采用了许多默认配置。提供了一个starter POM来进行简化配置。根据Maven项目中pom.xml文件的XML配置项,Spring会自动根据XML的配置整合Spring框架,还有SpringMVC等其他技术框架.

2.1.3 SpringMVC

Spring MVC是在Spring之上的一种轻量级Web框架。在日常开发中,由于使用了MVC架构模式的思想来解耦Web层并管理应用程序所需的生命周期,能够让我们的开发更加地方便。SpringMVC提供了一个用于视图管理的主开关DispatcherServlet,以及请求处理映射器(Handler Mapping),处理适配器(Handler Adapter)和视图解析器(View Resolver)。动作处理器Controller接口(包括ModelAndView和处理请求响应对象请求和响应),配置灵活,文件上传支持,简单的数据转换以及其他强大的功能。

SpringMVC结构图如图2.2所示,客户端通过URL发送请求,核心控制器收到请求后,通过请求查询传递给处理器映射器,处理器映射器找到处理的应用程序返回给核心控制器,然后核心控制器找到需要进行处理的处理器适配器并调用接口,最后将结果返回给核心控制器,最后将获取的结果传递给视图解析器解析,最后发送给客户端。

2.1.4 Vue

Vue是构建构建用户界面的框架。Vue很轻巧,也有许多独立的功能或库,所以,当我们继续具体开发的时候,我们可以根据我们的具体情况来选用一些不同的功能或库,Vue具有双向数据绑定的优势,满足不良邮件过滤系统的开发需求。

2.1.5 MySQL数据库

该系统将MySQL作为数据库,MySQL是一个高效率、高并发、国内热门的关系型数据库之一。MySQL内有三大重要组成部分,第一层是连接授权服务,第二层是数据查询服务,第三层是保存数据的引擎层。

2.1.6 Tomcat

Tomcat 服务器是一个便捷的开源Web服务器,连接器Connector和容器Container是Tomcat的核心。Tomcat经常被用在中小企业开发以及并发量小的开发中,并且是开发和调试Servlet、JSP 程序的首选。基于此,不良邮件过滤系统使用Tomcat作为服务器。

2.2系统开发环境需要

本系统在Windows环境下开发,使用IDEA开发工具,使用HeidiSQL作为数据库前端可视化软件。

2.3本章小结

该文详细阐述了不良邮件过滤系统的技术栈、相关理论知识,介绍了Spring、SpringBoot等开源框架、MySql 数据库以及Tomcat 服务器。

3 系统需求分析

3.1 系统需求分析概述

目前,不良邮件过滤系统已基本实现邮件服务商的内联,一些功能也在不断地完善,用户在邮件系统中发送,对方也就会同步收到用户发送的邮件。同时,信息系统中数据的及时性和准确性在邮件事务中至关重要。

3.2 系统功能需求的分析

微信点餐系统的功能性需求主要包含系统用户模块、收件箱模块、发件箱模块、垃圾箱模块、回收站模块、邮箱拦截配置六大模块,是基于浏览器运行的web管理后端,其中各个模块详细说明如下:

3.2.1 系统用户模块

系统用户模块包含了系统登陆用户的档案维护。我们需要建立一个档案来维护可以登陆这个系统的用户,包括用户的名称、手机号、邮箱、密码、权限等数据。

3.2.2 收件箱模块

收件箱模块包含了系统用户正常收到的所有邮件,用户可以在此模块中查询自己收到的电子邮件。

3.2.3 发件箱模块

发件箱模块包含了电子邮件的发送界面,还包括了系统用户历史发送的邮件档案,和未发出的草稿邮件信息。

3.2.4 垃圾箱模块

垃圾箱模块包含了系统用户收到的垃圾信息。这些邮件是被用户设置的过滤规则所过滤的邮件档案,用户可以在垃圾箱模块中查询它们。

3.2.5 回收站模块

系统用户可以主动删除收到的邮件,用户操作删除后,邮件会自动进入到回收站作为缓冲区。用户如果在可以在回收站再次删除文件,即彻底删除邮件信息。

3.2.6 邮箱过滤设置模块

系统用户可以自定义配置适合自己的过滤规则,如设置黑名单防止骚扰,设置白名单避免误伤,设置关键词以便更精确的过滤邮件。

3.3 系统非功能需求的分析

3.3.1 可靠性

保证系统的稳定可靠,使用系统的过程中发生错误的几率尽可能地较小,并且要防止进行更新升级造成系统地不稳定。

3.3.2 易用性

使用系统的前台人员尤其是系统用户、系统管理员的操作人员,关于计算机知识的掌握程度参差不齐。对系统操作方式的设计一定要易于学习和接受并应充分考虑到操作人员在操作过程中每个细节可能出现的误操作在开发过程中对这些误操作加以预防或提示。

3.3.3 维护性

系统每天至少保持23小时的可用时间,能够对日常的使用的数据进行统计分析,以便于后期维护。

3.4 系统可行性分析

不良邮件过滤系统开发的可行性的评估,主要是从三个方面进行的,分别是对现有系统的分析、对邮件过滤技术的可行性分析和邮件在当今社会的因素三个方面进行分析。

3.4.1 对现有系统的分析

不良邮件过滤系统的设计与实现具有重要意义:用户发送邮件更加方便快捷,只需注册账号进行登录,便可以在自己的电脑上进行发送邮件操作,可以根据需要修改自己的个人信息,用户也可以随时根据需要进行发送邮件,发送过程方便快捷;针对这一问题,不良邮件过滤系统有利于减少用户在发邮件的操作时间,减轻发送邮件等待时间的占比,在一定程度上提高了用户的邮件发送效率。

3.4.2 技术的可行性分析

该系统分析了设计初期各种技术体系结构的优缺点,并最终采用了广泛而高安全性J2EE技术。J2EE技术的重点是系统的外部可拓展性以及开发早期的标准化部署。因此,J2EE技术可以完全支持不良邮件过滤系统的研究和开发。面向对象的思想将以上所说作为研究对象,来研究、分析、探索这些事物之间的关系。一般情况下,问题域里的所有内容都可以一个一个地转换为软件系统中的对象。面向对象技术使系统更易于开发人员理解和使用,这使系统的用户可以了解研发的原理和过程。MySQL是关系数据库,并且MySQL体积小,速度快,并且是开源代码,因此它拥有广泛的应用。综上,选择不良邮件过滤系统的开发技术可行,不存在工程难题。

3.4.3 社会因素的分析

目前,中国的电子邮件水平正在稳步提升中, “六服务”正在深入推进, “7+1”信息新攻坚战正在政府组织下有力发展。

计算机和网络技术在递减自邮件领域的应用,能够有效的解决用户发邮件难、垃圾邮件多等问题,可以节省时间、合理分配资源等,所以不良邮件过滤系统是具有重要意义的。“一本账”,深刻地深化了电子邮件的改革,让用户在地健脑上享受到高质量,高效率的邮件服务。最近,我国在电子邮件上不断推陈出新。

3.5 需求分析小结

本章主要分析了开发此系统的可行性,分别从现有系统、相关技术方面以及社会因素方面对开发不良邮件过滤系统进行分析,现有系统的不完善,运用技术方面的可行,社会不断地发展,说明了开发此系统的必要性。

4 系统整体结构设计

4.1 系统设计的基本思想

MVC模式是软件领域常用的编程思想,在软件开发中,View(视图)、控制器(Controller)、模型(Model)是MVC的三层架构,最终实现灵活流动性的程序设计。这种MVC体系结构能让我们的程序更加容易拓展,能够更加直观体现出系统结构。

4.2 系统总体架构设计

不良邮件过滤系统的设计中,架构的设计是尤其关键。我们将设计的系统的模块进行了功能的划分,具体的划分结构示意图如4-1所示。

4.3 系统的网络拓扑结构的部署

不良邮件过滤系统的架构用的是企业级别的信息化结构平台。部署广域网用于实现顾客下单,可以实现系统用户的登陆,系统管理人员对于账号的审核和修改以及其他一些相关功能的操作。部署局域网和服务器能够加强相关人员的信息安全。图4-2是本系统的网络结构示意图。

4.4 系统详细设计

4.4.1 系统用户模块的功能设计

系统用户模块负责维护登陆用户的档案,即谁可以登入这个系统。系统用户需要包含用户的基本信息,如邮箱账号、邮箱密码、发信人性别、发信人姓名、邮箱号、身份证号、家庭地址等。系统用户模块包含了对系统用户的增加、清理、更新、查询、导入和导出功能,如图4-3所示。

4.4.2 收件箱模块的功能设计

收件箱管理模块管理了系统用户收到的正常邮件档案。用户收到邮件后会先经过用户配置的过滤规则,若没被过滤掉,则进入收件人的收件箱。系统用户可以在这个模块中查询。收件箱模块中的数据需要包括邮件标题、发件人ID、发件人姓名、收件人ID、收件人姓名、邮件内容、邮件附件、发送状态和过滤原因字段。该模块需要实现邮件的接收、删除、邮件查看、附件预览和下载功能,如图4-4所示。

4.4.3 发件箱模块的功能设计

发件箱管理模块管理了系统用户历史发出的邮件,和用户未发出的草稿邮件。用户可以在这个模块中编辑邮件、上传邮件附件、预览邮件附件、发送邮件。邮件的字段需要包括邮件标题、发件人ID、发件人姓名、收件人ID、收件人姓名、邮件内容、邮件附件、发送状态和过滤原因字段,其中发件人ID和发件人姓名为自动填充项,如图4-5所示。

4.4.4 垃圾箱模块的功能设计

垃圾箱管理了系统用户收到的非法邮件。当用户收到的邮件被用户自定义的过滤规则所过滤时,会自动把邮件放入用户的垃圾箱。用户可以进入垃圾箱模块查询这些被过滤的邮件。邮件的字段需要包括邮件标题、发件人ID、发件人姓名、收件人ID、收件人姓名、邮件内容、邮件附件、发送状态和过滤原因。垃圾箱模块需要包括查询垃圾邮件、删除垃圾邮件、预览邮件附件、下载邮件附件,如图4-6所示。

4.4.5 回收站模块的功能设计

回收站管理了系统用户主动删除的邮件。当用户将收件箱或垃圾箱的邮件主动进行删除操作后,邮件会自动进入回收站。用户可以进入回收站模块查询这些被删除的邮件。邮件的字段需要包括邮件标题、发件人ID、发件人姓名、收件人ID、收件人姓名、邮件内容、邮件附件、发送状态和过滤原因。回收站模块需要包括查询被删除的邮件、预览邮件附件、下载邮件附件,如图4-7所示。

4.4.6 邮件过滤规则模块的功能设计

邮件过滤规则管理模块包括了用户配置的黑名单、白名单和过滤关键词。用户可以根据自己的需求进行配置,黑名单、白名单、过滤关键词在各个账户之间独立,只对当前账户生效。该模块需要包括黑名单、白名单的增加、清理、更新、查询功能,如图4-8所示。

4.5 数据库分析与设计

不良邮件过滤系统的数据库是具有邮件信息相关的数据库,其中的相关信息具有很强的专业性。对数据库的设计与创建不仅是为了存储数据,更是为了通过数据来反映业务流程。

4.5.1 系统概念层结构设计

通过需求功能分析以及各个模块的设计,最后将每个模块都进行数据库的设计,并且通过E-R图来进行展示。

系统用户模块是对登入邮件系统的账号进行记录并管理,其中用户的信息包括了账号的姓名、性别、手机号、生日、身份证号、邮箱、注册日期、备注等,其中工号是系统用户的确定性因素。如图4-9所示。

发件箱、收件箱、垃圾箱、回收站模块分别是对邮件进行记录并管理,其中邮件的信息包括了邮件的邮件ID、发件人ID、发件人姓名、收件人ID、收件人姓名、邮件标题、邮件内容、附件、备注等,其中邮件ID是邮件的确定性因素。如图4-10所示。

黑名单表,用于存储系统用户的黑名单数据,包括的拉黑的规则名称、邮箱地址、生效用户ID和备注信息。

白名单表,用于存储系统用户的白名单数据,包括的拉白的规则名称、邮箱地址、生效用户ID和备注信息。

关键词表,用于存储系统用户的配置的过滤关键词,包括的关键词、生效用户ID这两个字段。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
16天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
94 62
|
2天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
15 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
2天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
10 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
8天前
|
机器学习/深度学习 算法 5G
基于MIMO系统的SDR-AltMin混合预编码算法matlab性能仿真
基于MIMO系统的SDR-AltMin混合预编码算法通过结合半定松弛和交替最小化技术,优化大规模MIMO系统的预编码矩阵,提高信号质量。Matlab 2022a仿真结果显示,该算法能有效提升系统性能并降低计算复杂度。核心程序包括预编码和接收矩阵的设计,以及不同信噪比下的性能评估。
25 3
|
7天前
|
XML Java 数据库连接
SpringBoot集成Flowable:打造强大的工作流管理系统
在企业级应用开发中,工作流管理是一个核心组件,它能够帮助我们定义、执行和管理业务流程。Flowable是一个开源的工作流和业务流程管理(BPM)平台,它提供了强大的工作流引擎和建模工具。结合SpringBoot,我们可以快速构建一个高效、灵活的工作流管理系统。本文将探讨如何将Flowable集成到SpringBoot应用中,并展示其强大的功能。
28 1
|
14天前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个前后端分离的应用框架,实现动态路由和菜单功能。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,帮助开发者提高开发效率和应用的可维护性。
32 2
|
16天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
20天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
22天前
|
算法 JavaScript
Vue 中的 Diff 算法
【10月更文挑战第18天】需要注意的是,Diff 算法虽然能够提高性能,但在某些复杂的场景下,可能仍然会存在一些性能瓶颈。因此,在实际开发中,我们需要根据具体情况合理地使用 Diff 算法,并结合其他优化手段来提高应用的性能。
11 1
|
26天前
|
存储 安全 Java
打造智能合同管理系统:SpringBoot与电子签章的完美融合
【10月更文挑战第7天】 在数字化转型的浪潮中,电子合同管理系统因其高效、环保和安全的特点,正逐渐成为企业合同管理的新宠。本文将分享如何利用SpringBoot框架实现一个集电子文件签字与合同管理于一体的智能系统,探索技术如何助力合同管理的现代化。
58 4