您的位置:首页 > 编程语言 > Java开发

JavaMail(三)需要哪些数据表支持

2019-03-17 12:34 99 查看

如果您仅仅是使用JavaMail的收发邮件功能,但是在项目中不需要页面去显示收发内容(比如我们常用的QQ邮箱中的发件箱、草稿箱、收件箱等),那么可以跳过此章节。

当然,我是已目前项目作为基础的,此章节中的数据表结构与设计仅仅是为了满足项目需要,存在很多不科学不合理的地方,仅仅是给您作为一个参考,欢迎指出问题和不足指出,我会非常感激您的帮助。

那么都需要准备什么数据表呢?

邮箱账号表(关键)- 用于存储用户绑定的邮箱账号信息

邮箱预设配置表(关键)- 用于用户绑定邮箱时,选择邮箱种类后,默认的邮箱配置项信息

邮件表(关键)- 用于存储用户绑定邮箱的邮件(发件、收件、草稿等)

邮件文件夹表(非关键)- 用于存储用户绑定邮箱中各个邮件的自定义文件夹

邮箱标签表(非关键)- 用于存储用户绑定邮箱中各个邮件的标签

首先说明一下,邮箱文件夹表 和 邮箱标签表 是非必须的数据表,仅仅是为了一定程度上让用户使用邮件管理更加方便而已。而且本项目中的邮件文件夹是虚拟存在的,只是用于检索邮件列表时的一个筛选条件,而不是物理上实际存在的文件夹。其实和标签是一样的道理。下面的邮件表中有相应的外键去记录它。

我们先看看邮箱账号表:

id 主键

user_email_account 邮箱账号

user_email_password 邮箱密码

user_email_send_host 发件邮件服务器

user_email_send_port 发件端口

user_email_receive_host 收件邮件服务器

user_email_receive_port  收件端口

user_email_protocol 协议类型(指收件服务)

ssl_state 是否开启ssl认证(0:不需要;1:需要)

binding_state 是否绑定(0:解绑;1:绑定)

belong_user_id 归属用户id

belong_company_id 归属公司id

省略系统字段。。。

说明:

1. 账号,密码,发收服务器端口不用过多解释。

2. ssl认证是什么鬼?

   邮件服务器的安全问题最主要包含2个方面,一是如何防范垃圾和广告邮件及诈骗、钓鱼、勒索病毒邮件等问题,二是保

   障邮件账号的安全以及邮件内容在传输过程中不被非法窃取和篡改。而后者是往往被很多IT运维人员所忽略的。

   电子邮件服务器SSL安全证书确保客户端设备到邮件服务器端数据传输为加密方式。

   除非获取SSL证书的私钥,否则目前第三方无法解密数据(不包括旧版本SHA1加密方式,因为其密钥太短)。  

   我们不需要关心这么多,整个加解密过程不用自己实现,开启这个选项后,在我们收发邮件时,填写上对应的参数即可,后面章节中会讲到。

3. 归属用户 和 归属公司 是预留字段,主要用于项目中的一些统计使用。

下面是邮箱预设配置表:

id 主键id(各邮件厂商基础配置信息)

email_type 邮箱厂商

send_host 发件服务器地址

send_port 发件端口号

receive_host 收件服务器地址

receive_port 收件服务器端口号

ssl_state 是否ssl加密(0:不需要;1:需要)(通常为0,可根据不同邮箱厂商要求进行配置)

省略系统字段。。。

说明:

这张表,我们没有过多需要解释的,如果勤快点,可以写个页面用于常规邮件厂商预设配置,如果嫌麻烦,这部分由运维直接数据库配置即可。需要我们自己去收集一些邮件厂商的配置信息。

下面是邮件表:

id 主键

sender 发件人

receiver 收件人

ccer 抄送人

secreter 密送人

subject 主题

main_time 用于展示的主要时间(草稿、发件箱为插入记录时间、收件箱为邮件服务器收件时间)

content 正文

attachment_state 是否包含附件(0:是;1:否)

type 邮件类型(0:草稿箱;1:发件箱;2:收件箱;3:垃圾箱;9:待发送)

fold_id 文件夹(文件夹外键)

sign_id 标签(标签外键)

read_state 是否已读(0:未读;1:已读)

active_flag 删除标识(0:未删除;1:已删除-是一个类似收件箱的文件夹,可查阅;-1:彻底删除-用户看不到,数据库不删除)

belong_account 邮件归属邮箱(通过该字段检索邮件草稿、发件、收件等属于哪个邮箱账户)

user_id 归属用户id

company_id 归属公司id

省略系统字段。。。

说明:

该表的字段名及备注基本见名知意,不做过多解释。这里的 active_flag中 -1 代表的彻底删除,不删除数据库,不是为了窃取用户数据 ^ -^ 而是因为,我们每次从收件服务器中获取邮件的时候,会和自己数据库中该邮箱账户的邮件做一些比对,已防止,同一封邮件重复出现,已彻底删除邮件又出现在收件箱等灵异事件。

文件夹表及标签表省略。。。(基本就是主键+文件夹或标签名称)

 

数据表部分已经讲完了,有了这些基础表,就可以开始开发咯,但是这些肯定是不足够的,不完备的。欢迎指正,我们一起成长。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐