文末获取资源,收藏关注不迷路
一、项目介绍
E-mail是信息化时代最重要的联系工具之一,在日常的工作学习中具有非常重要作用。电子邮件作为互联网技术发展的产物,在给全球网民带来通讯便利的同时,正不可避免地遭遇有悖初衷的运用。垃圾邮件问题日益严重,受到研究人员的广泛关注。 运用现代化信息技术手段加强电子邮件的管理,可以大大地降低管理工作量加快收集信息的速度,通过加强管理,保护电子邮件完整无缺,过滤垃圾邮件,节省办公时间。
论文先介绍当前邮件分类系统的现状,然后调研开发这一系统的主流技术,最终选择通过Python的Django框架开发,选择轻量级的关系型MySQL数据库存储数据。接着进行系统的需求分析、功能设计、数据库设计,最后进行编码实现。邮件分类系统主要通讯录管理、发件箱、收件箱、垃圾箱、用户管理等功能。
本次毕业设计主要基于python开发技术以及MySQL实现邮件分类系统的整体开发,同时结合了python编程的性能性与开发的便捷性,最大程度为用户提供完善的邮件收发与分类管理系统。本研究首先以通过文献资料查阅,了解目前一般邮件分类系统的设计要点与原型参考,制定合理的开发技术路线与功能要点。
通过走访相关人员,对邮件分类系统进行调查,分析实际工作情况,整理系统需要实现的需求。邮件分类系统包括两类用户,管理员和会员。功能包括会员注册与登录模块、个人中心模块、发送邮件的功能、通讯录功能、收信箱功能、发信箱功能、草稿箱功能、垃圾箱功能、标记箱功能、邮箱的黑名单功能。最终完成基于python的邮件分类系统中前台界面和后台逻辑处理的设计与实现。
项目背景
近年来,计算机技术的高速发展带动了许多行业的进步,通过科技手段可以帮助人们改善工作流程,提高工作效率。在管理系统模块中,最重要的莫过于数据库,可以将管理系统的各项数据通过数据库进行存储,然后方便统计分析。通过关键字快速的查询信息,提高了办公效率,节省了人力物力。在传统的工作中只有通过人工处理,往往会造成许多的遗漏,也不能进行快速的查询统计,影响了工作的开展。
在电子邮件管理方面,也需要管理系统进行系统化管理,帮助电子邮件进行分类整理,方便用户快速的找到电子邮件。在目前信息技术非常成熟的基础上,开发邮件分类系统,实现邮件信息整理,帮助个人或者企业完成邮件分类管理,可以有效的提高工作效率。
传统的邮件分类管理模式不再适用于当前信息化时代的发展,一个好的管理流程是必不可少的,尽早的将邮件分类系统开发提上日程,通过系统的建设提高工作效率,尽最大可能的完成邮件内容分类,节省时间。
课题研究目的和意义
目前也存在一些个人使用的邮件分类管理系统的情况,但是大多使用的是单机版本进行管理,客户使用这种模式比较复杂,不能通过网站的形式进行操作,所以只有开发基于python的邮件分类系统,才更能满足当前客户的要求。通过浏览器即可访问系统,在线查询信息、进行邮件分类整理的操作,提高了服务效率。
对于邮件客户来说,通过注册获取个人的账号信息,然后所有的操作都可以记录,系统提供的邮件分类模块可以为用户提供快速的邮件查找服务。
基于python的邮件分类系统的B/S模式,方便安装,减少了维护的工作量,只需要通过服务器端的更新就可以实现新系统的发布,提高了邮件分类系统的可扩展性和可移植性。邮件分类系统可以极大地去改善电子邮件系统的使用环境,为人类的生活提供便利,防止垃圾邮件损害人们的利益和网络资源,促进信息化发展。
二、主要使用技术
环境需要
1.运行环境:python3.7/python3.8。
2.IDE环境:pycharm+mysql5.7;
3.数据库工具:Navicat11
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
技术栈
后端:python+django
前端:vue+CSS+JavaScript+jQuery+elementui
使用说明
使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
使用PyCharm 导入项目,修改配置,运行项目;
将项目中config.ini配置文件中的数据库配置改为自己的配置,然后运行;
运行成功后,在浏览器中输入:http://localhost:8080/项目名
三、研究内容
本次毕业设计主要基于python开发技术以及MySQL实现邮件分类系统的整体开发,同时结合了python编程的性能性与开发的便捷性,最大程度为用户提供完善的邮件收发与分类管理系统。本研究首先以通过文献资料查阅,了解目前一般邮件分类系统的设计要点与原型参考,制定合理的开发技术路线与功能要点。具体包括:
第一、实现邮箱的登录、注册功能。
第二、发送邮件的功能,其中包括能够发送的邮件能够添加附件,一份邮件可添加多个收信地址,完成多人发送。完成抄送和密送。
第三、通讯录功能,可添加邮箱地址保存至通讯录,可对通讯录里的邮箱地址进行昵称的设置。
第四、收信箱功能,收信箱中邮件默认按照时间排列,拥有未读提示,可检索未读邮件。可对收信箱中的邮件进行检索和删除。
第五、发信箱功能。该信箱记录已发送的邮件。可对发信箱中的邮件进行删除功能。
第六、草稿箱功能。可对当前发送内容进行编辑,保存至草稿箱,记录下未完成发送的邮件。可对草稿箱中的邮件进行删除功能。
第七、垃圾箱功能。在收信箱中删除的邮件会被添加至垃圾箱并且不会出现在收信箱,垃圾箱中可对其中的邮件进行删除,删除后将不能复原。也可以将垃圾箱中的邮件进行复原,复原的邮件将重新回到收信箱。
第八、标记箱功能。可对收信箱中的邮件进行标记,标记后的邮件将同时添加到标记箱。可对标记箱中的邮件进行删除功能。
第九、邮箱的黑名单功能。可对某一邮箱地址拉入黑名单,当收到该地址后将自动删除该地址邮件。
四、核心代码
# coding:utf-8
__author__ = "ila"
from django.http import JsonResponse
from .users_model import users
from util.codes import *
from util.auth import Auth
import util.message as mes
def users_login(request):
if request.method in ["POST", "GET"]:
msg = {'code': normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
if req_dict.get('role')!=None:
del req_dict['role']
datas = users.getbyparams(users, users, req_dict)
if not datas:
msg['code'] = password_error_code
msg['msg'] = mes.password_error_code
return JsonResponse(msg)
req_dict['id'] = datas[0].get('id')
return Auth.authenticate(Auth, users, req_dict)
def users_register(request):
if request.method in ["POST", "GET"]:
msg = {'code': normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
error = users.createbyreq(users, users, req_dict)
if error != None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def users_session(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code,"msg":mes.normal_code, "data": {}}
req_dict = {"id": request.session.get('params').get("id")}
msg['data'] = users.getbyparams(users, users, req_dict)[0]
return JsonResponse(msg)
def users_logout(request):
if request.method in ["POST", "GET"]:
msg = {
"msg": "退出成功",
"code": 0
}
return JsonResponse(msg)
def users_page(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code,
"data": {"currPage": 1, "totalPage": 1, "total": 1, "pageSize": 10, "list": []}}
req_dict = request.session.get("req_dict")
tablename = request.session.get("tablename")
try:
__hasMessage__ = users.__hasMessage__
except:
__hasMessage__ = None
if __hasMessage__ and __hasMessage__ != "否":
if tablename != "users":
req_dict["userid"] = request.session.get("params").get("id")
if tablename == "users":
msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
msg['data']['pageSize'] = users.page(users, users, req_dict)
else:
msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
msg['data']['pageSize'] = [],1,0,0,10
return JsonResponse(msg)
def users_info(request, id_):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
data = users.getbyid(users, users, int(id_))
if len(data) > 0:
msg['data'] = data[0]
# 浏览点击次数
try:
__browseClick__ = users.__browseClick__
except:
__browseClick__ = None
if __browseClick__ and "clicknum" in users.getallcolumn(users, users):
click_dict = {"id": int(id_), "clicknum": str(int(data[0].get("clicknum", 0)) + 1)}
ret = users.updatebyparams(users, users, click_dict)
if ret != None:
msg['code'] = crud_error_code
msg['msg'] = ret
return JsonResponse(msg)
def users_save(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
req_dict = request.session.get("req_dict")
req_dict['role'] = '管理员'
error = users.createbyreq(users, users, req_dict)
if error != None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def users_update(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
req_dict = request.session.get("req_dict")
if req_dict.get("mima") and req_dict.get("password"):
if "mima" not in users.getallcolumn(users,users):
del req_dict["mima"]
if "password" not in users.getallcolumn(users,users):
del req_dict["password"]
try:
del req_dict["clicknum"]
except:
pass
error = users.updatebyparams(users, users, req_dict)
if error != None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def users_delete(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
req_dict = request.session.get("req_dict")
error = users.deletes(users,
users,
req_dict.get("ids")
)
if error != None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
五、文章目录
摘要 I
ABSTRACT II
1 绪 论 1
1.1项目背景 1
1.2课题研究目的和意义 1
1.3 论文结构 2
1.4 本章小节 2
2 开发技术与工具介绍 3
2.1 系统开发环境 3
2.2 Python技术 3
2.3 MySQL数据库 4
2.4 本章小节 5
3 系统需求分析 6
3.1 可行性分析 6
3.1.1 经济可行性 6
3.1.2 技术可行性 6
3.1.3 法律可行性 6
3.1.4 社会可行性 6
3.2 非功能性需求分析 7
3.3 功能需求分析 8
3.3.1 邮件管理需求 8
3.3.2 用户管理需求分析 9
3.4本章小节 11
4 系统设计 12
4.1 总体设计 12
4.2 系统设计目标 13
4.3 系统详细设计 14
4.3.1 功能模块设计 14
4.3.2 邮件管理流程设计 15
4.3.3 用户管理流程设计 16
4.4 E-R图 16
4.5 数据库设计 17
4.6本章小节 23
5 系统实现 24
5.1 登陆模块的实现 24
5.2 通讯录管理的实现 25
5.3 发件箱管理的实现 26
5.4 收件箱管理的实现 27
5.5 用户管理的实现 28
5.6 个人信息维护的实现 29
5.7本章小节 30
6 系统测试 31
6.1 测试说明 31
6.2 测试环境 32
6.3 测试实例 32
6.4 测试结论 34
6.5本章小节 34
总 结 35
参考文献 36
致 谢 37