APP下载

基于XML的企业内部邮件系统的设计与实现

2010-01-15刘长勇

湖北工程学院学报 2010年3期
关键词:联系人列表邮件

刘长勇,许 晓

(1.武夷学院动漫学院,福建武夷山 354300;2.厦门优联志诚网络科技有限公司,福建厦门 361000)

基于XML的企业内部邮件系统的设计与实现

刘长勇1,许 晓2

(1.武夷学院动漫学院,福建武夷山 354300;2.厦门优联志诚网络科技有限公司,福建厦门 361000)

针对企业内部邮件系统的设计目标,提出了一种基于XML的企业内部邮件系统的设计与实现,详细分析了邮件系统的功能、体系结构和邮件数据的存储结构,并给出邮件收发流程及实现代码。

XML;邮件系统;邮件收发;XCPU;XM ail

随着中国企业上网工程步伐的加快和网上邮箱的推出,拥有自己的网上邮箱是每个企业的迫切希望。因此,为了实现邮件系统在企业内部快捷、方便、可靠、高效地运行,邮件系统的设计目标一般有以下几个方面的要求[1]:1)用户操作简单,使用方便;2)邮件收发速度快;3)邮件存储空间利用率高,文件可共享;4)邮件传输高效快捷;5)能有效地对邮件进行控制和管理。为此,本文提出了一种以XML格式来存储数据、采用基于B/S结构的邮件系统设计方案,通过将应用服务单独进行处理,从而使得用户界面与应用服务位于不同的平台上,方便地将整个系统分为不同的模块,提高了系统模块的通用性,缩短了开发周期,降低应用系统开发成本[2]。

1 XML技术

1.1 XML概述

可扩展标记语言(eXtensible Markup Language,XML)是由互联网联合组织(World Wide Web Consortium,W3C)在1998年制定的一种通用语言规范,它是一门新兴的、面向Internet应用的标记语言,可以根据需要表现的文档,通过自由定义标记来表现具有现实意义的文档内容。它具有以下几方面的优点:1)良好的可扩展性,语言简单有效,可自行定义标记;2)内容与形式的分离,主要刻画数据内容,不考虑显示效果;3)有严格的语法要求,便于分析统一和与数据库信息转换;4)便于传输,为纯文本形式,可通过 H TTP协议直接传输,可跨越防火墙[3-5]。

1.2 XML文件的结构

XM L文件包括3个部分:XML声明、处理指示(可选)、XML元素。XML文档的一个基本要求是形式良好(well formed),一个形式良好的XML文档要包含这3个部分。下面是一个完整的XML文档:

<?xm l version="1.0"?>

<doc>

<assem bly>

<name>XCPU.XMail</name>

</assembly>

<members>

<member name="T:XCPU.XXM ail.Send Event A rgs">

<summary>

XM Index Event Args的摘要说明。

</summary>

</member>

<mem ber name="M:XCPU.XXM ail.Send Event A rgs.#ctor">

<summary>

邮件事件

</summary>

<param name="e">邮件索引</param>

</member>

</members>

</doc>

2 邮件系统的设计

2.1 功能设计

1)邮件创建:用户可以通过该模块进行创建新邮件。

2)邮件管理:通过收件箱、发件箱、草稿箱和垃圾箱对邮件进行分类管理。收件箱存储着其他用户发送给该用户的邮件;发件箱用来存储用户在发送邮件时的邮件副本;草稿箱用来存储未完成或暂未发出的邮件;垃圾箱存储被删除的邮件。

3)邮件传输:负责处理从显示层到逻辑层的数据传输工作。该模块分用户信息传输和邮件信息传输两大主要工作。用户信息传输包括用户登录、注册用户、通过部门编号获得指定的部门名称、用户信息修改。邮件信息传输包括发送邮件、保存邮件、删除邮件、永久删除邮件、获取指定类型的索引列表、获取用户所在部门的所有部门邮件、读取邮件、获取新邮件、附件上传、附件下载。

4)邮件发送、接收:邮件发送、接收模块,即XCPU,是本系统的核心,负责了邮件系统的所有邮件数据运算工作。

5)邮件阅读:用户在查看邮件管理中的邮件列表时,通过点击列表中的邮件主题,对邮件进行阅读。用户在阅读邮件后,可以对这些邮件进行回复、删除和永久删除等操作。

6)用户信息:用户可以在此模块中查看和修改用户自己的信息。

7)用户通讯录:用户可以利用通讯录,存储用户常用的联系人邮件地址。在通讯录中,用户可以对联系人进行管理,如添加、修改和删除联系人。用户可以对联系人进行分类,并且可以自定义联系人分类。用户在创建新邮件时,可以调用通讯录里面的联系人信息。

2.2 体系结构设计

企业内部邮件系统是在Internet环境下实现的,采用浏览器/服务器(B/S)模式。服务器以Window s 2000 Server/2003 Server为操作系统平台,以XML为数据存储方式,客户端通过浏览器访问系统提供的服务。系统不允许匿名访问,它要求用户提供用户名和密码,通过验证后才能进入系统主页。用户进入系统后,可以管理自己的邮件,编写新邮件发送给企业内部用户。在发送时,可以同时发送附件,并可以定时发送邮件。用户对收取到的邮件可以进行回复、删除等操作。

邮件系统的体系结构如图1所示,共分为以下4层:

1)显示层:以树型结构显示邮件系统的用户界面,供用户完成各种邮件的操作。

2)数据传输层:采用 Web Services和 Socket的方式实现数据的传输与通信。

3)数据处理层:负责邮件系统的所有邮件数据运算工作。

4)数据存储层:以XML格式存储邮件数据。

图1 邮件系统体系结构图

2.3 邮件数据(XMail)存储结构的设计

系统以XMail为主要数据处理对象,XMail是以RSS存储的XML文件,其格式如下:

<?xm l version="1.0"encoding="gb2312"?>

<rss version="2.0">

<channel>

<title></title>

<link></link>

<descrip tion>

<XList XGroup From="test"XGroup To="test"Converge=""Pin="xuxiao"ID="20060526154157094508321"DataSource=""Department=""From="xuxiao@XMail.com"To="xuxiao@XM ail.com"Cc=""Bcc=""iDna=""XFlow=""IsRead="True"IsSended="True"IsSave="True"IsReceived="True"Subject="内部邮件"BodyEncoding="Base64"Body Fo rmat="Text"Prio rity="No rmal"Send-Time="2006-5-26 15:41:58"Send Tim ing=""ReceiveTime="2006-5-26 15:41:59"LastRead Time="2006-5-26 15:42:30"Read-Count="1"ReadPin="xuxiao"A ttachments="20060526154103040702779_Admin.xm l|"A ttachmentsCount="1"MailSize="1331"/>

</descrip tion>

<copyright> </copyright>

<language> </language>

<item>

<title> </title>

<link></link>

<descrip tion><Body>

<![CDA TA[<P align=center> <STRONG><FON T color=#ff1493>通知</FON T></STRONG></P>]]>

</Body></descrip tion>

</item>

</channel>

</rss>

3 XCPU的实现

XCPU是本系统的数据处理中心,负责邮件系统的所有邮件数据运算工作,是一个W indow s服务程序,由数据接收中心、命令中心、XCPU缓存、数据处理中心和邮件发送中心等部分组成。

3.1 邮件收发流程

本邮件系统的邮件收发流程如图2所示。

图2 邮件收发流程

3.2 数据接收

接收从 Web Service通过 Socket发送到XCPU的数据,并将数据传递给命令中心进行分析。得到分析结果后,将数据进行XM ail转换,如果命令类型为发送 XM ail,将 XMail存储到XCPU的一级存储中,并将XM ail的邮件索引添加到二级缓存中,等待数据处理中心的处理。如果命令类型为XM ail的操作,直接传递给数据处理中心处理。其实现的主要代码如下所示:

p rivate void XScoket Ser_On Recv Data(object sender,NetEventA rgs e)

{Order order=new Order(e);

//如果当前指令类型为发送邮件

//将数据添加到一级缓存中

if(order.Order Types==Order Type.Send)

{//接收事件

this.OnReceive(e.Client.Datagram);

if(this.CacheL1.Contains(order.Data)==false)

{this.CacheL 1.Add(order.Data);

timer.Enabled=true;

XScoketSer.Send(e.Client,"true");

}

else

{XScoketSer.Send(e.Client,"false");}

}

else

{//打开一个线程处理

Oper Order X M ail ooXM ail=new Oper OrderX M ail(this.XScoketSer,order);

Thread th=new Thread(new Thread Start(ooXM ail.Begin));

th.IsBackground=true;

th.Start();

}

}

3.3 邮件发送

先从 XCPU的二级缓存中获取要处理的XMail的邮件索引 XM ail Index,再从XCPU的一级缓存中获取对应的XMail进行发送处理。其实现的主要代码如下所示:

private bool Send()

{if(this.to Send X M ail List.Count==0)

{return false;}

is Busy=true;//系统开始忙

foreach(object feX Mail in this.to Send X M ail List.Values)

{XM ail the X M ail=(XM ail)feX M ail;

XMail Index theXM Index = theXMail.MailIndex;

if(the XM Index==null)

{continue;}

Send Single XM ail Index(the XM Index);//处理单个XMail Index

}

Remove From To Send XM ail Indes();//删除已发送过的邮件索引

Move Busy To Send XM ail Index();//将临时列表中的邮件添加到处理列表中

is Busy=false;

Remove Is To Send At Busy();//从临时列表中移除已加载到处理列表的邮件索引

return true;

}

4 结束语

本邮件系统按照B/S结构模型设计,通过将应用服务单独进行处理,从而使得用户界面与应用服务位于不同的平台上,利用 Web Service和Socket技术,实现了系统的跨服务器运行,提高了系统的数据处理能力和ASP.Net的访问负载能力。同时,由于采用XML格式进行数据存储,使数据可以通过网络无障碍地进行传输,简化了数据的维护与备份,具有良好的通用性、可移植性。

[1] 刘俊,闫渊源.基于数据库的企业内部邮件系统的设计[J].信息技术,2008(11):112-114.

[2] 邱林,张凌.基于B/S三层结构的电子邮件解决方案[J].计算机工程,2003(11):158-159.

[3] 崔莉.基于XML的Web文件传输系统的实现[J].重庆科技学院学报,2009(4):127-129.

[4] 刘长勇,宁正元.基于XML的学习流模型的研究[J].重庆工学院学报,2009(2):176-180.

[5] 靳志强,滕桂法,孙晨霞,等.基于XML与动态数据集成模型的异构数据访问接口设计与实现[J].河北农业大学学报,2009(3):131-135.

Design and Implementation of the XML-based Enterprise Internal Mail System

Liu Changyong1,Xu Xiao2
(1.Animation Institute,Wuyi University,Wuyishan,Fujian 354300,China;2.Xiamen Youlianzhicheng Network Technology Co.,L td,Xiamen,Fujian 361000,China)

According to the design objectives of enterprise internalmail system,the present article put forward the design and implementation of the XML-based enterprise internal mail system,discussed the functions,frame and mail datAstorage structure of it and provided the mail sending and receiving process and implementation code.

XML;mail system;mail receiving and sending;XCPU;Xmail

TP393.098

A

1671-2544(2010)03-0064-04

2009-11-02

武夷学院科技项目(XQ0920)

刘长勇(1974— ),男,福建建瓯人,武夷学院动漫学院讲师,硕士。

(责任编辑:陈锦华)

猜你喜欢

联系人列表邮件
基于James的院内邮件管理系统的实现
学习运用列表法
来自朋友的邮件
扩列吧
让重要联系人更醒目
为每个联系人设定不同的铃声
CMailServer
教你将手机联系人导出到Excel
一封邮件引发的梅赛德斯反弹
列表画树状图各有所长