一、设计内容
用ASP.NET技术开发一个模拟邮件系统,界面自定,要求具有如下功能:
1、 首用户能够注册
2、 用户登录后
l 查看用户注册信息
l 可以发信给其它用户
l 查看来信,对来信进行回复
可增加的功能:邮件文件夹分类(收件箱、发件箱等),将邮件分类存放
(本篇利用Jmail组件实现关键功能,请先下载Jmail,并添加到项目引用之中)
二、系统总体设计
注册页面的设计:
首先用户注册个人信息与已有163邮箱进行绑定,要注意绑定邮箱要开启smtp/pop3服务,填写用户信息时候绑定的邮箱密码并不是邮箱登陆密码,而应该是开启smtp/pop3服务时所设置的授权码,并将数据插入数据库用户信息表里面,插入之前会有一个用户名检测功能目的是使用户名唯一。
登陆页面:
当用户注册成功以后,会自动跳转到登陆界面,输入用户名和密码,
点击登陆,系统会在数据库用户信息表里面查询是否有注册记录如果有则登陆成功,没有则提示登陆失败。
母版页设计
登陆成功进入的页面都会有很多重复的部分,所以建一个母版页来进行站点导航,使网站看起来完整统一,并且省略了大量界面代码。
母版页头部包含了用户注册的用户名,头像和一些基础信息
以及各种设置如个人中心,用户切换等。母版页左边是一个菜单栏,提供具体功能如 写信,收件箱,通讯录等。
写信收信界面设计:
通过获取界面中各控件的参数,利用引用组件Jmail(关于jmail下面会介绍)来完成邮件的收发删除。其中将邮件信息加载到页面之中。以及将发送邮件信息存入本地数据库中做记录保存。
通讯录界面设计:
每一个用户在注册成功的同时,会生成一个独一的联系人表,
通过读取表中联系人信息加载到页面之中。选择联系人之后可直接跳转到发送邮件界面,可选择多个联系人群发。
数据库一共有3类表,一张存取用户信息表userinfor,一张用来存放用户联系人表userid,一张存放邮件记录表messages。
二、数据库设计
先创建userinfor表和Message表
CREATE TABLE [dbo].[userInfor] (
[USERID] NVARCHAR (50) NOT NULL,
[USERNAME] NVARCHAR (50) NULL,
[PASS] NVARCHAR (50) NULL,
[SEX] NCHAR (10) NULL,
[CITY] NVARCHAR (50) NULL,
[PRIVICE] NVARCHAR (50) NULL,
[IMAGE] NVARCHAR (50) NULL,
[PHONE] NVARCHAR (50) NULL,
[BIRTH] NVARCHAR (50) NULL,
[EMAIL] NVARCHAR (50) NULL,
[MAILPASS] NVARCHAR (50) NULL,
[MAILNAME] NVARCHAR (50) NULL,
PRIMARY KEY CLUSTERED([USERID] ASC)
);
CREATE TABLE [dbo].[Messages] (
[userid] NVARCHAR (50) NOT NULL,
[type] NVARCHAR (10) NULL,
[content] NVARCHAR (200) NULL,
[talker] NVARCHAR (50) NOT NULL,
[time] NVARCHAR (50) NOT NULL,
[filepath] NVARCHAR (200) NULL,
PRIMARY KEY CLUSTERED([time] ASC)
);
而contact表 是表userinfor的表存放着注册过得用户信息,在用户注册将星系插入userinfor表的同时,动态的以userinfor表里面的属性userid里面存放的内容为表名创建联系人contact表。
"create table " + user.Text + " (USERID nvarchar(50) primary key, USERNAME nvarchar(50),)"
其中Message 表里面type 1是文字 2是图片3是文档。
Filepath里面存放着资源的url或路径,content为邮件body
Userid,和talker分别是发件人from和收件人to
其中time是主键存放着该记录生成的时间。
三个表之间的联系。
userinfor.userid=userid.userid=message.userid;