关键词:
作为企业办公自动化系统的一个重要组成部分, 内部邮件系统不是一个广义的依靠POP3服务器和SMTP服务器的邮件收发系统, 而是针对单位的使用员工、部门利用数据库实现的内部邮件系统, 传统的邮件服务能完成私人邮件的处理, 但对于单位的内部邮件服务存在一些弊端:①邮件存储空间的限制, 邮件服务器分配到个人邮箱的空间毕竟有限;企业内部邮件来往信件频繁, 使用传统的邮件系统会造成邮件系统的拥堵。②不能实现通过单位部门、员工便捷的邮件发送, 只能通过Email地址发送, 不适合单位内部便捷、高效信息传送要求。③它是一个独立的应用系统, 不能融入企业办公自动化系统中。因此, 开发一套B/S模式的企业内部邮件系统是必要的[1]。
一、系统设计
(一) 系统需求和功能设计
设计的系统采用发信件、收件箱、发件箱、草稿箱和垃圾箱功能模块结构, 邮件的发送处理可按部门、员工选择。用户进入邮件系统时, 会出现邮件提醒功能, 提示有多少封未读邮件。发送邮件的对象除个人外, 可按部门的组织形式进行群发, 发送邮件内容可是纯文本格式, 也可是HTML格式。发送邮件可添加多个附件。发送者可查看接收该邮件的浏览记录, 如是否阅读和阅读次数等。对所有邮件的处理使用了垃圾箱功能, 即删除邮件时, 先放入垃圾箱中, 可对垃圾箱中的邮件进行还原, 避免邮件的误删除。
(二) 技术架构
系统采用微软的.NET技术架构, 基于.NET体系使得系统具有良好的扩展性和性能;以微软的数据库SQL Server为后端数据库, 以满足大数据量的并发数据访问;微软的IIS为WWW服务器。在开发系统时, 以Visual Studio.NET为开发环境 (C#语言编写) , 系统采用三层体系结构, 即:用户表示层、业务逻辑层和数据访问层。
(三) 数据库设计
内部邮件系统的数据库包括部门表、员工表、邮件内容表以及邮件传递表, 前两个是基础信息表, 后两个与内部邮件系统工作紧密相关。数据库结构如图1所示。①邮件内容表:用来存储邮件的静态信息, 包括, 邮件编号、发送员工ID、邮件标题、内容以及附件等;其中, 状态标志字段的作用是区分邮件在发送阶段的不同状态, 被编码为:1-信息发送完毕;2-邮件在草稿箱中, 未删除;3-草稿信息转移到垃圾箱;4-已发送邮件被删除, 存在垃圾箱。②邮件传递表:存放接收邮件的动态信息, 包括邮件编号、接收员工ID、浏览邮件次数、最后浏览日期等。表中的状态标志字段用来区分接收的邮件是在收件箱还是在垃圾箱, 被编码为:5-邮件在收件箱中;6:邮件在收件箱中被删除, 已进入垃圾箱。
二、系统的实现
(一) 发信模块实现
实现邮件的撰写和发送功能, 用户可选择部门下的单个员工作为发送对象, 也可选择部门的所有员工作为接收对象群发, 其中, 必填项为邮件的标题、发送对象、重要程度和内容。其中, 重要程度分为一般和重要, 对应数据库邮件内容表的重要性标志的0和1。通过附件的浏览按钮, 可选择本地文件上传到服务器。可直接发送, 也可先保邮件, 在草稿箱中存放保存的信息, 以便日后再次发送。在发送邮件中, 附件的上传是其中很重要的环节, 在本系统中, 附件上传的工作通过ASP.NET的File控件完成, 在实现上传功能前, 检查上传文件的大小是必要的, 文件大小为0或者超过上传文件的最大上限, 均不能上传, 此外, 为防止上传文件与服务器上传文件所在的文件夹中已有的文件重名, 将原上传文件名重命名, 扩展名不变, 文件名后加上系统的日期和时间。
(二) 信箱模块的实现
信箱模块完成收发邮件的分类显示, 包括收件箱 (用户收到的所有信件) 、发件箱 (用户已发送的信件) 、草稿箱 (信件未发走, 保存起来的信件) 、垃圾箱 (已删除的信件, 可还原或真正彻底删除) 。这些不同信箱的显示功能由一个页面MsgDisplay.aspx实现, 由不同的参数值完成不同信箱的显示, 系统通过数据库中邮件内容表和邮件传递表的状态标志字段值加以区分, 其信箱与状态标志字段值对应关系如表1所示:
(三) 信件查看的实现
通过该页面可查看各个信件箱中的信件, 包括发件人、收件人、抄送人、发送时间、主题, 附件中显示可下载的附件, 邮件内容采用HTML格式显示内容。
三、数据访问技术
在本系统开发中, 为简化对数据库的访问, 在三层架构中的数据访问层中, 加了一个通用数据访问子层, 由独立的通用数据访问类SQLHelper.cs实现对ADO.NET中常用数据访问方法进行了二次封装, 这样简化了代码, 提高了数据访问通用性[2], 例如在该类中提供ExecuteNonQuery、ExecuteReader、ExecuteDataset等公有访问方法, 可被上一层代码中直接调用, 其中SQLHelper类中的ExecuteNonQuery定义的示例代码如下:
Public void ExecuteNonQuery (CommandType cmdType, string cmdText, params SqlParameter[]cmdParms)
{SqlCommand cmd=new SqlCommand () ;//新建SqlCommand对象
cmd.CommandText=cmdText;//为SqlCommand对象属性赋值
cmd.CommandType=cmdType;
if (cmdParms!=null) //添加cmd需要的存储过程参数
{foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add (parm) ;}
Open () ;//调用类的方法, 打开数据库连接
cmd.Connection=conn;//设置数据库连接对象
cmd.ExecuteNonQuery () ;//执行数据库查询
cmd.Parameters.Clear () ;//清除cmd对象的参数
Close () ;//关闭数据库连接}
四、系统的安全策略
内部邮件系统的安全性是至关重要的, 作为办公自动化系统的一个子系统, 其安全性依靠OA系统整体的安全性措施加以实现, 除进入系统的登录验证之外, 采用了功能模块、角色和用户对使用系统的用户权限加以分配, 即将用户加入自定义的角色中, 一个用户可属于多个角色, 给角色分配系统各模块的权限, 这些工作由系统的管理员完成, 这样可使用户分配权限简单、灵活。OA系统也提供了日志功能, 将用户的一些重要操作、IP地址、操作时间写入系统日志表中, 可供管理员查阅。在系统设计时, 也充分利用了IIS服务器的安全性和数据库的安全性, 对数据库的访问均由存储过程完成, 有效防止恶意用户攻击。系统的数据备份功能可防止数据库数据丢失或数据损坏[3]。
五、结束语
本文论述的系统充分考虑了企业需求, 采用三层架构技术, 使用了先进的开发工具, 运用通用数据访问类对ADO.NET实现了二次封装, 简化了程序设计。系统具有容错性强、用户操作便捷、执行速度快、安全性高等优点。内部邮件系统作为企业办公系统的重要组成部分, 系统的应用提高了企业整体的办公效率, 节省了办公经费, 加强了部门以及员工间的协作, 在无纸化办公中起到越来越重要的作用。
摘要:本文讨论了基于数据库的内部邮件系统与传统的邮件系统的区别, 以企业内部邮件系统的实现目标出发, 介绍了基于.net技术架构开发企业内部邮件系统的技术架构和数据库设计, 同时, 讨论了系统的数据访问技术和安全策略, 对有构建B/S模式的内部邮件系统需求的读者具有一定的参考价值。
关键词:内部邮件系统,NET框架,三层体系架构
参考文献
[1] 刘俊, 闫渊源.基于数据库的企业内部邮件系统的设计[J].信息技术, 2008 (11) :112-114.
[2] 马青霞. ADO.NET通用数据访问层的设计与实现[J].金陵科技学院学报, 2017 (2) :13-17.
[3] 丁美荣, 魏海亮.基于B/S和C/S混合模式的办公自动化系统的网络安全策略研究[J].计算机与现代化, 2011 (6) :190-192.
相关文章:
基于ASP.NET的在线商城设计与实现01-22
基于Activeworlds的分布式三维网络教学的研究与实现01-22
基于AJAX的网络考试系统研究01-22
基于Struts与Hibernate的学生管理系统的设计与实现01-22
ADO.NET离线操作数据库的研究与实现01-22