Bootstrap

springboot邮件收发系统

 

      邮件收发系统是为了方便用户能够在网站上查看发送邮件、接收邮件、附件处理等,于是开发了基于springboot框架设计与实现了一款简洁、轻便的邮件收发系统。本系统解决了邮件收发管理事务中的主要问题,包括以下多个功能模块:用户、发送邮件、接收邮件、附件处理等管理功能。

      本系统采用了JAVA语言、springboot框架,采用了B/S设计模式,凭借ORM技术将相关数据映射到数据库中,数据采用MySQL数据库进行存储,界面化操作便于上手。本系统具有良好的易用性和安全性,系统功能齐全,可以满足邮件收发管理的相关工作。

关键词;邮件收发系统JAVA语言;springboot框架;MySQL数据库;

Abstract

The email sending and receiving system is designed and implemented based on the Spring Boot framework to facilitate users to view, receive, and process emails on the website. This system solves the main problems in email sending and receiving management transactions, including multiple functional modules such as users, sending and receiving emails, attachment processing, and other management functions.

This system adopts Java language, Spring Boot framework, and B/S design pattern. With the help of ORM technology, relevant data is mapped to the database, and the data is stored in MySQL database. The interface operation is easy to get started. This system has good usability and security, complete system functions, and can meet the related work of email sending and receiving management.

Keywords; Email sending and receiving system; JAVA language; Springboot framework; MySQL database;

目  录

  .................................................................................................................................... I

Abstract................................................................................................................................ II

1   ............................................................................................................................... 1

1.1课题的背景和意义.................................................................................................. 1

1.1.1课题的背景..................................................................................................... 1

1.1.2开发课题的意义及作用................................................................................. 1

1.2论文的结构.............................................................................................................. 2

1.3小结.......................................................................................................................... 2

2 相关技术简介及部署环境说明.................................................................................... 3

2.1 Spring Boot框架..................................................................................................... 3

2.2 JAVA语言介绍....................................................................................................... 3

2.3 Tomcat服务器简介................................................................................................. 4

2.4 MySQL数据库简介 ............................................................................................. 4

2.5 B/S架构................................................................................................................... 4

2.6小结.......................................................................................................................... 5

3 需求分析........................................................................................................................... 6

3.1邮件收发系统的可行性分析.................................................................................. 6

3.2邮件收发系统的需求分析...................................................................................... 6

3.3系统流程设计.......................................................................................................... 7

3.4小结.......................................................................................................................... 7

4 系统总体设计.................................................................................................................. 8

4.1数据库设计原则...................................................................................................... 8

4.2模型的设计.............................................................................................................. 9

4.3小结........................................................................................................................ 13

5 系统详细设计与实现................................................................................................... 14

5.1后台管理员功能模块............................................................................................ 16

5.2后台用户功能模块................................................................................................ 18

5.3小结........................................................................................................................ 20

6 系统测试......................................................................................................................... 21

6.1软件测试的定义.................................................................................................... 22

6.2系统测试的目的.................................................................................................... 23

6.3系统测试方法........................................................................................................ 25

6.4注册、登录模块测试............................................................................................ 26

6.5小结........................................................................................................................ 26

................................................................................................................................... 28

参考文献............................................................................................................................. 29

  ................................................................................................................................. 29

1  

1.1课题的背景和意义

      1. 课题的背景

随着科学技术的不断发展,计算机现在已经成为了社会的必需品,人们通过因特网可以获得海量的信息,这些信息可以和各行各业进行关联,邮件收发系统也不例外[1]

       传统线下方式管理的起源可以追溯到20世纪60年代末期。当时的计算机技术已经步入了实用技术阶段,由于各行业的工作大部分为高重复度的手工查找,这些工作耗费了大量人力资源又很容易出现细小的差错。这些问题恰恰可以通过计算机来解决,只是碍于技术条件限制,所以信息管理系统的发展比较迟缓。

直到20世纪90年代末信息管理系统迎来了革命性变革,由于计算机技术的高速发展和数据库技术、客户\服务器技术和因特网也都趋于成熟稳定。这为实现邮件收发系统提供了强有力的基础。这次变革使邮件收发系统的重心转移到计算机技术的角度上,用关系型数据库处理几乎所有与邮件收发系统有关的数据。设计界面化、报表工具生成和信息分析工具的信息共享使得管理者脱离了日常许多繁琐与重复的工作,有更多精力长远规划邮件收发系统发展和系统维护[2]

1.1.2开发课题的意义及作用

面对高重复性机械性的工作,工作者不可避免的会出现失误,而改正失误的成本也相当高。特别是近年来,互联网的来临,无论是对人类社会,还是对政治、经济等多方面领域影响深远,也给新时代的信息管理和信息系统带来新的机遇和挑战。网络电脑化越深入,影响越大,社会就越进入互联网时代邮件收发系统作为计算机应用,适合做单一重复的操作,对高速发展的技术有着更强的适应性,只需要维护更新得当,大大的降低了人力成本[3]。邮件收发系统有以下几个特性:

1)高自由度:邮件收发系统是一种人性化设计的系统,可以根据用户的需要来添加不同功能的组件和界面,让邮件收发系统更加的符合操作者的使用习惯,提供更多的便利功能。

2)高检索率:传统管理模式信息检索也需要系统的支持,不过纸质载体的体积大,占地面积广,复原困难等问题,就算检索到了位置,也会出现找不到资源的情况,邮件收发系统可以不受物理空间的限制,能储存的资料也没有空间的限制,即搜即看,大大的提高了资源查询效率。

3针对性该系统是根据设计需求为导向来开发邮件收发系统的设计,所以针对性较强

(4)实用性该设计能够满足邮件收发系统的实际的功能需求,能够在实际中让用户真正使用到,具有实际的应用价值,这将会及广大使用者,更快、更好地满足了他们的需求,为现代信息管理系统的建设提供了软件支持[4]

    1. 论文的结构

本文的主体结构如下:

第一章主要对当下的邮件收发系统的背景和开发意义进行了重点论述。

第二章重点介绍本邮件收发系统的相关的开发技术,并对软件的部署环境进行必要的说明。

第三章重点对邮件收发系统进行需求分析和可行性论述。

第四章主要对邮件收发系统各个模块总体的设计以文字加图表的形式进行说明。

第五章详细的对各个模块进行阐述。

第六章对邮件收发系统的测试方法进行说明及测试结果的展示[5]

1.3小结

    本章结合了邮件收发系统的历史和优势说明了开发邮件收发系统的必然性和重要性,结合实际的系统体验来阐述开发邮件收发系统的实际意义,粗略的介绍了此次系统的主要开发步骤和论文的安排。

 

2 相关技术简介及部署环境说明

2.1 Spring Boot框架

Spring Boot是近几年最为流行的后台开发框架,它的诞生一改过去Spring框架开发中繁琐的配置,极大地简化Spring应用的搭建和开发。Spring Boot框架不仅保有了Spring框架中的所有优秀特性,还通过使用特定的配置方式,在底层帮助开发人员在工程创建是就预先做了很多配置,这样在开发时就不再需要开发人员过多进行繁琐的配置了。另外在Spring Boot中集成了大量框架,这就使得开发人员不再需要到处寻找在导入开发中需要依赖的jar包,同时也解决了依赖包版本冲突问题,从而提高了依赖包引用的稳定性,从而实现了对Spring应用搭建和开发过程的简化。

2.2 JAVA语言介绍

Java语言作为现在主流编程语言之一,就是因为它有很多自己的特点和优势。

Java语言具有以下几个特点:

1)跨平台性

平时所说的一次编译,到处执行,指的就是这个跨平台性。Java的源代码编译后会生成字节码文件,这些文件可以被Java虚拟机执行,得到想要的结果。在设备上安装对应的虚拟机,Java的字节码文件就可以运行。

2)面向对象

Java是一个面向对象的编程语言。面向对象是指把属性和方法进行封装,通过创建的对象调用里面的方法,实现一些功能。

3)多线程

Java是支持多线程的,它允许在一个程序中同时开启多个线程,同时处理多个任务,这样可以提高它的效率。

Java语言对于开发工具要求不高,有专业的编程工具Eclipse会更顺利编程,但是,没有专业的编程软件,用记事本也能进行编辑。

2.3 Tomcat服务器简介

Tomcat是Apache公司的研发并发布的产品。 Tomcat 是一个小型的轻量级应用服务器, 在中小型系统和并发访问 用户不是很多的场合下被普遍使用。它还具有很强的稳定性。Tomcat是嵌入式的,不需要进行war文件的部署。并且,它也同时简化了Maven的配置。简化了程序员的开发步骤。

2.4 MySQL数据库简介

MySQL是一种关系型的数据库管理系统,属于Oracle旗下的产品。MySQL的语言是非结构化的,使用的用户可以在数据上进行工作。这个数据库管理系统一经问世就受到了社会的广泛关注。在各个方面,与同等的数据库相比,MySQL的优点极为突出,它的运行速度快,适用的范围广泛,而且数据库的安全性这一方面独树一帜。在语言结构方面,MySQL的语言简单,其他数据库需要一大段代码来实现的操作,MySQL仅需要一小部分代码甚至几行。综上所述,MySQL这种关系型数据库管理系统,已经成为了开发者进行项目的数据开发、存储的不二之选。MySQL的功能也多种多样,如数据操纵和数据库的建立维护等。而且该数据库的数据共享性高、冗余度低而且容易扩充。MySQL在安全性这一方面也具有自身的特点,它应用了用户的标识和鉴别技术,对试图和数据进行加密,确保资料信息的可靠性。介于数据库系统的功能与强大等性质之间,本数据库系统的设计中主要使用了MySQL实现对数据的处理。邮件收发系统运用MySQL数据库,在Web应用这一块,MySQL是最好的选择。对于该系统整个的开发、搭建、运行和维护具有极其重要的作用。

2.5 B/S架构

B/S结构就是指系统客户端与服务器分离,客户端通过浏览器访问服务端进行操作。

B/S结构目前广泛应用于绝大部分系统搭建中,这种结构摒弃C/S结构客户端服务端不分离的缺点,具有更多的优势:

1)跨平台性:B/S的标准由标准化组织确立,适用于绝大多数的系统搭建,通用于应用之间。

2)低维护成本:客户端和服务器端分离,减轻了两端的压力,尤其是客户端,对客户端设备,硬件、软件要求都比较低,并且系统需要升级或维护时,只需要在服务器端升级或维护就可以,使相应的费用减少。

2.6小结

本章详细的介绍了开发邮件收发系统所需要的技术与工具,工欲善其事必先利其器,对于技术和工具了解的越多越清晰,才会在开发过程中如鱼得水。

3 需求分析

                             

3.1邮件收发系统的可行性分析

邮件收发系统在社会中都广泛存在,邮件收发系统是本平台不可或缺的一部分,对邮件收发系统的可行性分析基于当下的互联网背景,从经济、市场、技术、法律和用户使用上进行了调查,从此验证次系统开发的可行性[6]。下面分别从以下几点进行分析:

  1. 经济可行性分析:由于开发本系统主要是为了测试自身的专业和设计能力,基本不考虑经济效益和后来的发展方向,只注重自身水平和设计能力的提高,并且对自身经济的要求也不高,只要有一台普通电脑就可以了,所以不需要考虑经济问题[7]
  2. 市场可行性分析:邮件收发系统作为非盈利性的系统,其职能在方便人民群众。图书馆作为承载知识的载体,高校与社会都有不计其数的图书馆,而邮件收发系统需要平台的支撑,自然在市场上可行[8]
  3. 技术可行性分析:对系统进行分析,邮件收发系统的大部分功能都需要管理员完成,springboot框架只需要添加少量代码就可以很好适配管理员功能。也可以提高HTML文件的复用率,提高效率。在数据库方面,ORM简化了表的创建和使用,采用了Oracle旗下开源的关系型数据管理系统MySQL,多表存储的特点使数据更加规范化,增删改查更容易。综上所述,技术开发上并无太大的难点。
  4. 用户使用可行性分析:鉴于系统的使用用户为高校学生,有统一的学号和一定的知识水平,且系统无需用户有过多的操作,界面清晰简洁,用户使用可行性上无问题[9]
  5. 法律可行性分析:本应用的开发内容均在法律范围内得到支持,并已经通过备案。

3.2邮件收发系统的需求分析

需求分析在系统开发中有着十分重要的作用。软件项目凭借软件工程的思想和步骤可以大大的提高开发效率,缩短软件开发周期,保证了软件项目的质量。需求分析作为软件工程方法中的一步是至关重要的。软件需求工程是一门分析并记录软件需求的学科。需求分析简单的来说就是用户需要什么,系统需要什么,对此进行问题的列举,等级的排列,需要缜密的思分析和大量的调研[10]

邮件收发系统在国内有很多值得借鉴的例子,功能也都趋于完善,因此此次邮件收发系统将轻量化开发,要完成以下功能:

1)要支持完整的用户注册,登录功能,账号的管理通过管理员来实现。

2)为了用户能够方便修改个人信息,查看发送邮件、接收邮件、附件处理等功能。

3)管理员通过后台系统来完成对所有信息的编辑,包括添加、删除等操作。

本课题要求实现一套邮件收发系统,系统主要包括管理员模块和用户功能模块。

1)管理员用例图如下所示:

       

3-1管理员用例图

2)用户用例图如下所示:

                  

 

3-2用户用例图

3.3系统流程设计

3.3.1 系统开发流程  

邮件收发系统的设计和开发,首先要对用户的实际使用需求和具体情况进行细致的分析,分析出系统要完成的全部功能,然后再针对整个系统的工作流程和功能进行设计,力求每个模块都能够达到用户的要求,最后通过测试来解决问题,保证系统的稳定和正常的运转,本系统的开发流程如图3-3所示。

3-3系统开发流程图

3.3.2 用户登录流程

登录流程实现了管理员和其他用户的登录,在登录页面需要用户填写自己的信息,前端页面会将信息传递给后端接口,然后查询数据库确定该身份有效后登录成功,否则此用户登录失败,需要重新填写信息,进行再次验证,如图3-4所示。

3-4登录流程图

3.3.3 系统操作流程

系统操作流程分析是软件开发过程中的一个关键环节,它是整个系统整体的运行过程,必须保证其中的每一个步骤都是确定的,这样一个规范的流程图可以使开发者易于理解,快速的投入到接口开发中,从而提升系统开发效率。

同时,流程图还能减少开发者对系统操作流程产生歧义和降低沟通的成本,系统操作流程如图3-5所示。

3-5系统操作流程图

3.3.4 添加信息流程

系统的正常运行离不开数据的支撑,因此,在本系统中添加了数据插入功能,数据库中数据的缺失,会直接影响到数据的查询结果,查询结果错误又会导致逻辑处理出现偏差,最终导致系统性错误或故障,所以在对系统进行数据添加操作时,必须要对数据进行合法性校验,确定此条数据是否有惟一的主关键字和字段是否允许为空等等,若数据库表中不允许某字段为空,而程序没有进行该字段非空逻辑校验,那么就会出现数据存储失败,可能因此造成严重系统后果。添加信息流程如图3-6所示。

3-6添加信息流程图

3.3.5 修改信息流程

因为使系统的使用者是人,所以难免会有疏忽,从而造成系统输入的信息有误。或者由于其他原因导致数据发生改变,使得必须对系统内的数据进行相应的调整,所以在程序运行中,数据的修改操作是不可缺少的重要环节。

在进行数据更新时,必须要有一个惟一的主关键字,以便数据库能够查询到相应的数据;另外,还必须遵守数据插入过程的操作规范,以确保数据的正确性。修改信息流程图如图3-7所示。

3-7修改信息流程图

3.3.6 删除信息流程

删除操作在系统中并非是必须的,可根据用户及系统的需要来决定是否添加删除功能,删除操作就是使用delete语句将数据库中的某一匹配数据删除,因为此操作会导致用户数据丢失,所以为了避免使用者误按删除键,应在用户点击删除按钮时添加一个提示确认弹窗,当用户确定要删除时,再进行数据库的操作,并且在删除操作完成后要对用户进行反馈。删除信息流程图如图3-8所示。

3-8 删除信息流程图

3.4小结

邮件收发系统旨在让用户能够轻松便捷的查询信息,让管理员的工作负担减轻。本章主要对邮件收发系统的经济、技术、用户使用、法律、市场可行性进行分析。确认可行后,对邮件收发系统进行了需求分析,从用户和管理员角度思考了可能会有的需求,是后续论文和应用开发的基础指导[11]

4 系统总体设计

此次邮件收发系统通过springboot框架。springboot适合快速构建Web应用。springbootB/S设计模式中的视图分成了View模块和Template模块两部分,将动态的逻辑处理交给View处理,页面通过Template来实现。ModelTemplateView连在一起,如此划分后,程序中的每一部分只做一件事情,耦合度大大降低,便于开发者管理。为了更好的去理清本系统整体思路,对该系统以结构图的形式表达出来,设计实现该邮件收发系统的功能结构图如下所示:

图4-1 系统总体结构图

4.1  数据库设计原则

数据库设计之后,根据数据库关系,可以更加清晰地了解到数据库结构,每一个数据表之间的关系,再创建数据表。快速更改和查询对应的信息,有了数据库就不用在程序和代码中寻找。

用户信息E-R如图4-2所示。

图4-2 用户信息E-R

接收邮件E-R图如图4-3所示。

图4-3接收邮件E-R

附件处理E-R图如图4-4所示。

图4-4附件处理E-R

发送邮件E-R图如图4-5所示。

 图4-5发送邮件E-R

邮件收发系统总体E-R图如图4-6所示。

 图4-6邮件收发系统总体E-R

4.2模型的设计

在关系数据E-R图中,分析并创建数据表,数据表用来记录信息,数据表关系由多个数据表组成,该系统中存在多个自定义模型,下面依次进行介绍。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表attachment_processing (附件处理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

attachment_processing_id

int

10

0

N

Y

附件处理ID

2

attachment_name

varchar

64

0

Y

N

附件名称

3

attachment_number

varchar

64

0

N

N

附件编号

4

attachment_type

varchar

64

0

Y

N

附件类型

5

attachment_content

text

65535

0

Y

N

附件内容

6

attachment_remarks

text

65535

0

Y

N

附件备注

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表email_type (邮件类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

email_type_id

int

10

0

N

Y

邮件类型ID

2

type_name

varchar

64

0

Y

N

类型名称

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表receiving_emails (接收邮件)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

receiving_emails_id

int

10

0

N

Y

接收邮件ID

2

receiving_users

int

10

0

Y

N

0

接收用户

3

user_name

varchar

64

0

Y

N

用户姓名

4

sending_users

int

10

0

Y

N

0

发送用户

5

email_subject

varchar

64

0

Y

N

邮件主题

6

email_number

varchar

64

0

N

N

邮件编号

7

email_type

varchar

64

0

Y

N

邮件类型

8

email_content

text

65535

0

Y

N

邮件内容

9

receiving_time

date

10

0

Y

N

接收时间

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表regular_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

regular_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

mobile_phone_number

varchar

64

0

Y

N

手机号码

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

user_id

int

10

0

N

N

0

用户ID

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表sending_emails (发送邮件)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

sending_emails_id

int

10

0

N

Y

发送邮件ID

2

sending_users

int

10

0

Y

N

0

发送用户

3

user_name

varchar

64

0

Y

N

用户姓名

4

receiving_users

int

10

0

Y

N

0

接收用户

5

email_subject

varchar

64

0

Y

N

邮件主题

6

email_type

varchar

64

0

Y

N

邮件类型

7

sending_time

datetime

19

0

Y

N

发送时间

8

email_content

text

65535

0

Y

N

邮件内容

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

4.3

本章介绍了邮件收发系统各个模块以及之间的相互联系,从宏观角度上介绍了每一个模块的作用,而后通过表格的方式介绍了每一个模型的属性,最后通过多张ER图,说明了实体间的联系。

5 系统详细设计与实现

按照软件工程的流程来说,在系统的详细设计与实现阶段,要把模块、视图、模板进行相应的组合完成一个个所需的功能,此章将会把设计中模块进行说明如何设计和实现的。

5.1 后台管理员功能模块

管理员登录,通过登录页面输入用户名、密码、验证码、选择角色等信息,进行登录操作,如图5-1所示。

5-1管理员登录界面图

管理员点击登录摁钮页面跳转到邮件收发系统对后台首页、系统用户、邮件类型管理、发送邮件管理、接收邮件管理、附件处理管理、系统管理、个人信息等功能,进行相应操作,如图5-2所示。

5-2管理员功能界面图

用户信息功能在视图层(view层)进行交互,比如点击“添加”按钮或填写用户信息信息表单。这些用户信息动作被视图层捕获并作为请求发送给相应的控制器层(control1er层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查询、添加、更新或删除用户信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便用户信息功能可以看到最新的信息或相应的操作反馈。在用户信息页面的输入栏中输用户姓名进行查询,可以查看到用户详细信息,并根据需要进行修改或者删除等操作;如图5-3所示:

5-3用户界面

管理员点击邮件类型,在邮件类型页面对类型名称等信息,进行查询,添加或删除邮件类型等操作。如图5-4所示:

5-4邮件类型界面

管理员点击发送邮件,在发送邮件页面对发送用户、用户姓名、接收用户、邮件主题、邮件编号、邮件类型、发送时间、邮件内容等信息,进行查询、添加或删除发送邮件等操作。如图5-5所示:

5-5发送邮件界面

管理员点击接收邮件,在接收邮件页面对接收用户、用户姓名、发送用户、邮件主题、邮件编号、邮件类型、邮件内容等信息,进行查询或删除接收邮件等操作。如图5-6所示:

5-6接收邮件界面

管理员点击附件处理,在附件处理页面对附件名称、附件编号、附件类型、附件内容、附件备注、创建时间、更新时间等信息,进行查询或删除附件处理等操作。如图5-7所示:

5-7附件处理界面

5.2 后台用户功能模块

用户注册登录,通过注册登录页面输入详细信息,进行注册登录操作,如图5-8所示。

5-8 用户注册登录界面图

用户点击后台管理,然后页面跳转到系统后台,在用户主页面,主要包括对后台首页、邮件类型管理、发送邮件管理、接收邮件管理、附件处理管理、个人信息等功能进行操作。用户主页面如图5-9所示:

5-9用户主界面图

用户点击邮件类型,在邮件类型页面对类型名称等信息,进行查询或者删除邮件类型等操作。如图5-10所示:

5-10邮件类型界面

用户点击发送邮件,在发送邮件页面对发送用户、用户姓名、接收用户、邮件主题、邮件编号、邮件类型、发送时间、邮件内容等信息,进行查询或者删除发送邮件等操作。如图5-11所示:

5-11发送邮件界面

用户点击接收邮件,在接收邮件页面对接收用户、用户姓名、发送用户、邮件主题、邮件编号、邮件类型、邮件内容等信息,进行查询或删除接收邮件等操作。如图5-12所示:

5-12接收邮件界面

用户点击附件处理,在附件处理页面对附件名称、附件编号、附件类型、附件内容、附件备注、创建时间、更新时间等信息,进行查询或者删除附件处理等操作。如图5-13所示:

5-13附件处理界面

5.4 小结

      本章介绍了邮件收发系统的各个模块和实现功能,注册和功能展示,对模块下的关键功能进行了介绍,并通过截图展示了实现效果,每个模块的编写都以用户为中心,方便用户为原则设计的。

6 系统测试

6.1软件测试的定义

  在软件测试的过程之中,为了保证软件测试的各项工作能够安全有序地进行,就要对整个测试过程进行有效的干预或管理[12]

我们要清楚的是,无论从理论上,还是从经验上,我们都无法发现软件系统中的所有错误,一个软件系统必定存在着缺陷,软件测试必然有一定的局限性。

6.2 系统测试的目的

任何人系统开发中也不能保证没有一点错误,在开发的过程中错误是不可避免的,所以在发现错误时要及时改正,不能让错误一直存在,否则会引发系统崩溃等不可小觑的后果,所以才需要系统测试来在一定程度上避免这些问题的发生。在测试中发现错误并及时改正才会让系统长久稳定的运行,虽然这是耗时耗力的,但为了系统能够长期使用,系统测试这一步骤也是十分重要的[13]

为实现系统中各个模块的功能,系统测试是必须的,这样才能判定系统是否能准确的实现预想的功能。在正式使用系统前必要的步骤就是针对系统进行测试,确保系统的准确性,以供使用。

6.3 系统测试方法

在测试中发现问题一定要立马寻找解决办法,不要妄图通过偶然的概率对错误不管不问,只有认真测试解决问题,才能保证邮件收发系统的质量,可以极大的缩短开发的时间。

测试时不要一错再错,同样的错误一起解决,这样才能提高系统的稳定性和安全性。

6.4注册、登录模块测试

  1. 注册用户时输入两次不同的密码,如果不通过为测试通过。注册用户时输入不符合规范的姓名,如果出现提示为测试通过。注册用户时输入非纯数字的学号,如果出现提示为测试通过。
  2. 登录用户时输入多次不同的用户名、密码,如果不通过为测试通过。登录用户时输入的用户名不正确,如果出现提示为测试通过。

6.5小结

本章采用的是动态测试和黑盒测试方法进行测试,查看程序在运行过程中发现可能的错误操作,用测试用例来检测应用的稳定性,安全性。并在测试过程严格按照测试标准进行测试,保证邮件收发系统能够安全运行,减少差错[14]
                                    结 论 

本次论文介绍了开发一款基于springboot的邮件收发系统的全部过程,该系统运用了java语言进行编写、MySQL数据库存储数据、B/S设计模式、搭建出了一款简洁方便的邮件收发系统,于是看来我对整个软件的开发过程有了更全面的理解,其中也包括了整个操作过程。我对于系统的后台如何协调进行了深层次的了解。同时,通过使用不同的编程语言,也加深了我对不同的知识和学习方法的了解。

从论文选题到具体每一步功能的实施,我都遇到了一个又一个的难点问题。因为我只是接触到编程的一点点皮毛知识,没有深入了解过,更没有能力去发展一个大型的系统。刚开始的时候,我对此一无所知。我在意识到自己现有的能力和基础之后,我通过书籍和网络查找相关的信息来补充自己的不足,去学习更多的知识。在有了一个比较完善的理论架构后,我就有了一个比较明确的目标,然后我开始寻找和邮件收发系统相关的话题,找出一些基础的架构,并着手进行编写代码。在实际的编程过程中,我花了大量的时间来处理各种不同的逻辑问题。在编写该程序的过程中,我也遇到了很多以前从未遇到的BUG。我用了百度,请教老师,和同学商量等方法,也在网上请教了专业人士,让自己可以更好的明白自身问题并解决问题。

参考文献

  1.  王兆媛. 基于springboot框架的考勤管理系统的设计与实现[D]. 吉林大学2019.

[2] 刘红梅. 基于 UML 的宿舍管理建模[J]. 计算机与现代化,2019.

[3] 肖旻, 陈行. 基于java技术编程特点及应用之探讨[J]. 电脑知识与技术, 2019(34):8177-8178.

[4] 郑岚. java访问MySQL数据库[J]. 电脑编程技巧与维护, 2020(6):59-61.

[5] 刘班.基于springboot快速开发Web应用[J].电脑知识与技术,2020,5(07):1616-1618.

[6] 周文豪.数字教学以及RFID在世界企业中的应用状况[J].中国电子商情(RFID技术与应用),2019(03):65-70.

[7] MARTELLI A, RAVENSCROFT A, ASCHER D. java cookbook[M]. CA:O’Reilly Media. Inc, 2019.

[8] 徐鑫. 中小型图书馆网站设计与实现[D].郑州大学,2021.

[9] 马卫.springboot的邮件收发系统的设计与实现[J].电脑知识与技术,2020, 08(18):4310-4311.

[10] 曹玉良. 软件开发项目中的需求分析探讨[J]. 科技展望, 2019, 27(3).

[11] 周仁平. 教育技术学术博客研究[J]. 软件导刊(教育技术), 2019(6):88-90.

[12] Li Z. Design and Implementation of the Software Testing Management System Based on springboot[J]. Applied Mechanics & Materials, 2020, 525:707-710.

[13] MOORE D, WILLIAM B R. Professional java frameworks:Web 2.0 programming with springboot and Turbogears[M].USA:Wiley Publishing, Inc. 2019

[14] 于园园. 软件测试技术与测试管理研究[J]. 江苏科技信息, 2020(7):66-68.

[15] 朱晓敏. 软件测试的相关技术应用研究[J].电子测试,2019(1):122-123.

 

在如此特殊时间里,我能顺利将毕业设计和论文完成,这都要归功于xxx老师的无私的帮助,悉心的教导。为我指引方向,解答疑惑,每个问题都能得到专业的解释,让我在解惑的同时又能对语言和框架的理解更加深入。

通过这次毕业设计,我了解了怎样将理论联系到实际,收获到了许多书本上不曾有过的知识,也将知识融入自己的设计中进行了努力,拥有了成就感。

我也发觉了规划计划和查阅资料的重要性,规划计划让你每一步都有明确的目标,按照计划走能少走很多弯路,省去很多不必要的麻烦。Java是一门发展迅速,改动较大的语言,就需要在网络上不断寻找新的文章,合适的版本和技术逐渐完善程序,解决各种各样的小问题。

以上,毕业设计磨练了我的开发技术和理论知识,这为我以后的道路打下了坚实的基础,这段经历也会成为我人生中宝贵的财富。

最后,我要再次感谢xxx老师对我的帮助,和同学们在我设计过程中提出的意见和建议。

;