首页> 中国专利> 邮件处理组件配置信息的处理方法、装置及一种邮件系统

邮件处理组件配置信息的处理方法、装置及一种邮件系统

摘要

本发明实施例公开了邮件处理组件配置信息的处理方法、装置及一种邮件系统,包括:读取由邮件服务器加载到系统内存中的配置文件信息中的邮件处理组件结点信息;根据邮件处理组件结点信息确定邮件处理组件配置信息存储的位置,并从该位置读取邮件处理组件配置信息;构建与邮件处理组件配置信息相匹配的信息,并存储为对应关系对象;通过预先设置的远程管理接口对所述对象进行处理;根据处理结果更新所述邮件处理组件配置信息,并保存回邮件服务器。本发明通过一个可对内存中邮件处理组件信息进行修改的远程管理接口,对邮件处理组件信息的修改,并将修改后的邮件配置信息保存回邮件服务器中,从而实现了对邮件处理组件配置文件信息的动态操作。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-04-03

    授权

    授权

  • 2010-06-30

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20091201

    实质审查的生效

  • 2010-05-12

    公开

    公开

说明书

技术领域

本发明涉及电子邮件技术,尤其涉及邮件处理组件配置信息的处理方法、装置及一种邮件系统。

背景技术

James是一个邮件服务器,能够实现SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)、Pop3(Post Office Protocol 3,邮局协议的第3个版本)、IMAP(InternetMessageAccessPotocol,Internet消息访问协议)等邮件协议,其相应的功能配置信息都是在配置文件中定义各种邮件处理组件Mailet的属性来实现。相对于其它邮件服务器来说,这种配置方式更加灵活,通过增加、删除、修改Mailet属性即可改变邮件服务器的功能配置。从而使用户更加容易地定制和修改自己的邮件服务器。基于James的邮件列表的Mailet的配置信息如图1所示。

但是,这种配置虽然简化了邮件列表的配置过程,在实际的应用过程中却仍存在一些问题:

首先,在邮件服务器James当中构建一个邮件列表的途径是修改存储在XML(Extensible Markup Language,可扩展标记语言)文件中的Mailet信息,但是由于邮件列表的Mailet信息在程序初始化时就已被James加载到邮件系统内存中,所以在之后的过程中对服务器中邮件列表配置信息的修改将不会再被James服务器加载到内存。只有在对James服务器进行重启操作后,将修改后的配置信息重新加载,才能使对列表的修改生效。也就是说,现有技术无法实现对邮件列表Mailet信息的动态修改,这给服务器的修改与升级带来很多的不便。

其次,James中的Mailet信息只存放于XML文件中,在XML文件中定义一个邮件列表需要配置两个Mailet结点,一个是用于管理邮件列表的Mailet,一个是处理分发邮件到邮件列表成员中的Mailet。这两个Mailet中有很大一部分的属性是相同的,这种存储方式不但造成了数据的冗余,而且修改起来也很不方便。

发明内容

有鉴于此,本发明提供一种邮件处理组件配置信息的处理方法、装置及一种邮件系统,以解决现有技术中不能实现动态处理邮件处理组件配置信息的问题。其具体方案如下:

邮件处理组件配置信息的处理方法,包括:

读取由邮件服务器加载到系统内存中的配置文件信息中的邮件处理组件结点信息;

根据邮件处理组件的结点信息确定邮件处理组件配置信息存储的位置,并从该位置读取邮件处理组件配置信息;

构建与邮件处理组件配置信息相匹配的信息,并存储为对应关系对象;

通过预先设置的远程管理接口对所述对象进行处理;

根据处理结果更新所述邮件处理组件配置信息,并保存回邮件服务器。

优选的,所述邮件处理组件配置信息存储于可扩展标记语言XML文件中。

优选的,所述配置邮件列表的邮件处理组件配置信息存储于关系式数据库中,除所述配置邮件列表的邮件处理组件配置信息以外的配置信息存储于XML文件中。

优选的,关系式数据库具有四个存储表,分别用于存储邮件列表的主要配置信息、邮件列表的列表命令信息、邮件列表的开关配置信息和允许发往指定邮件列表的邮件地址信息。

优选的,所述远程管理接口为Java管理扩展远程管理接口JMX。

优选的,所述根据邮件处理组件的结点信息判断邮件处理组件配置信息存储的位置,并读取邮件处理组件配置信息的过程为:

读取类模块中的结点信息,判定邮件处理组件配置信息的存储位置为关系式数据库或者XML文件;

从所述关系式数据库或者XML文件中读取邮件处理组件配置文件信息。

优选的,所述操作为对配置信息的修改、增加或删除。

优选的,所述根据处理结果更新所述邮件处理组件配置信息的过程为:

将处理后的对象生成与其相对应的处理后的邮件处理组件配置信息。

一种邮件处理组件配置信息的处理装置,包括:第一读取单元、确定单元、第二读取单元、构建单元、存储单元、远程管理单元、信息生成单元和发送单元;其中:

所述第一读取单元用于,读取加载单元加载到邮件服务器内存的配置文件信息中的邮件处理组件结点信息;

所述确定单元用于,根据所述第一读取单元读取到的邮件处理组件结点信息确定邮件处理组件配置信息的存储位置;

所述第二读取单元,用于从所述确定单元确定的邮件处理组件配置信息的存储位置中读取邮件处理组件配置信息;

所述构建单元用于,构建与所述第二读取单元读取的邮件处理组件配置信息相匹配的信息;

所述存储单元用于,将所述邮件处理组件配置信息与所述构建单元构建的与其相匹配的信息存储为对应关系对象;

所述远程管理单元用于,对所述存储单元中的对象进行处理;

所述信息生成单元用于,将经所述远程管理单元处理后的对象生成与其相对应的处理后的邮件处理组件配置信息;

所述发送单元用于,将信息生成单元生成的处理后的邮件处理组件配置信息发送给所述邮件服务器。

一种邮件系统,包括邮件服务器和系统内存,还包括:

邮件处理组件配置信息的处理装置;

所述邮件服务器中还包括存储单元;

所述存储单元用于,存储邮件服务器内的邮件处理组件配置信息;

所述邮件处理组件配置信息的处理装置用于,读取由邮件服务器中存储单元加载到系统内存中的邮件处理组件结点信息,根据邮件处理组件结点信息确定邮件处理组件配置信息存储的位置,并从该位置读取邮件处理组件配置信息,构建与邮件处理组件配置信息相匹配的信息,并存储为对应关系对象,通过预先设置的远程管理接口对所述对象进行处理,根据处理结果更新所述邮件处理组件配置信息,并保存回邮件服务器.

优选的,所述存储单元包括:关系式数据库和XML文件;

所述关系式数据库用于,存储配置邮件处理组件的配置文件信息;

所述XML文件用于,存储除配置邮件处理组件的配置文件信息外的其他配置文件信息。

优选的,所述关系式数据库包括:主要配置信息存储表、列表命令信息存储表、开关配置信息存储表和邮件地址信息存储表;

所述主要配置信息存储表用于,存储邮件列表的主要配置信息;

所述列表命令信息存储表用于,存储邮件列表的列表命令信息;

所述开关配置信息存储表用于,存储邮件列表的开关配置信息;所述邮件地址信息存储表用于,允许发往指定邮件列表的邮件地址信息。

从上述的技术方案可以看出,本发明实施例公开的一种邮件列表配置信息的处理方法、装置及系统,通过一个可对内存中邮件列表信息进行修改的远程管理接口,对内存中邮件列表信息的修改,并将修改后的邮件配置信息保存回邮件服务器中,从而实现了对邮件列表配置文件信息的动态操作。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为基于James邮件服务器的邮件列表的邮件处理组件配置信息示意图;

图2为本发明公开的邮件处理单元配置信息的处理装置结构示意图;

图3为本发明公开的邮件系统的结构示意图;

图4为本发明实施例1公开的动态修改邮件列表配置信息的流程图;

图5为本发明实施例1公开的邮件服务器的配置信息示意图;

图6为本发明实施例2公开的关系式数据库内存储表的链式结构示意图;

图7为本发明实施例2公开的动态修改邮件处理组件配置信息的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明公开了一种邮件处理组件配置信息的处理装置,其结构如图2所示,包括:第一读取单元21、确定单元22、第二读取单元23、构建单元24、存储单元25、远程管理单元26、信息生成单元27和发送单元28.

第一读取单元21用于,读取加载单元加载到邮件服务器内存的配置文件信息中的邮件处理组件结点信息;确定单元22用于,根据所述第一读取单元21读取到得邮件处理组件结点信息确定邮件处理组件配置信息的存储位置;第二读取单元23,用于从所述确定单元22确定的邮件处理组件配置信息的存储位置中读取邮件处理组件配置信息;构建单元24用于,构建与所述第二读取单元23读取的邮件处理组件配置信息相匹配的信息;存储单元25用于,将所述邮件处理组件配置信息与所述构建单元24构建的与其相匹配的信息存储为对应关系对象;远程管理单元26用于,对所述存储单元25中的对象进行处理;信息生成单元27用于,将经远程管理单元26处理后的对象生成与其相对应的处理后的邮件处理组件配置信息;发送单元28用于,将信息生成单元27生成的处理后的邮件处理组件配置信息发送给所述邮件服务器。

本发明还公开了一种邮件系统,其结构如图3所示,包括:邮件服务器31、系统内存32、存储单元33和邮件处理组件配置信息的处理装置34。

存储单元33用于存储邮件服务器内的邮件处理组件配置信息;邮件处理组件配置信息的处理装置34用于读取由邮件服务器31中存储单元33加载到系统内存32中的邮件处理组件结点信息,根据邮件处理组件结点信息确定邮件处理组件配置信息存储的位置,并从该位置读取邮件处理组件配置信息,构建与邮件处理组件配置信息相匹配的信息,并存储为对应关系对象,通过预先设置的远程管理接口对所述对象进行处理,根据处理结果更新所述邮件处理组件配置信息,并保存回邮件服务器31。

本发明还公开了邮件处理组件配置信息的处理方法,以实现对James邮件服务器中的邮件处理组件Mailet配置信息的动态修改。

该方法设置一个可对内存中邮件处理组件信息进行修改的远程管理接口,通过这个接口,实现对内存中邮件处理组件信息的修改,并将修改后的邮件配置信息保存回邮件服务器中。由于本方法中的修改是在内存中进行的,而不需再重启邮件服务器将修改加载到内存,所以实现了对邮件处理组件的动态修改。

实施例一

本实施例中的邮件处理组件配置信息存储在XML文件中,在XML文件中定义了一个邮件列表需要配置的两个邮件处理组件结点,一个是管理邮件列表的Mailet结点,一个是处理分发邮件到邮件处理组件成员中的Mailet结点。本发明实施例1公开的动态修改邮件处理组件配置信息的方法流程如图4所示,其具体步骤为:

步骤S41、邮件处理组件配置信息处理装置读取由邮件服务器加载到系统内存中的配置文件信息中的邮件处理组件结点信息;

步骤S42、根据结点信息判断邮件处理组件配置信息的存储位置,若存储在管理邮件列表的Mailet结点中,则执行步骤S431,若存储在处理分发邮件到邮件处理组件成员中的Mailet结点中,则执行步骤S432;

步骤S431、从管理邮件列表的结点中读取邮件处理组件配置信息,执行步骤S44;

步骤S432、从处理分发邮件到邮件处理组件成员的结点中读取邮件处理组件配置信息,执行步骤S44;

步骤S44、根据邮件处理组件配置信息生成邮件服务器James能够识别并执行的Match与Mailet对,并存放于MailetContext邮件处理组件配置信息上下文中;

步骤S45、通过对外的JMX远程操作接口处理邮件列表的邮件处理组件配置信息;

步骤S46、根据处理结果更新所述邮件处理组件配置信息,并保存回邮件服务器。

James的主要配置文件是apps/james/SAR-INF/config.xml,此配置文件包含了James服务器的各种应用的相关配置信息,动态邮件列表的基本配置信息也配置于此配置文件中,具体的配置信息如图5所示。此邮件列表配置信息对应于一个实现了远程JMX操作接口(MaillistMBean)的类(Maillist),该类能够在启动James的时候,自动根据邮件列表配置信息读取存储于XML文件中的邮件处理组件Mailet的配置信息,并根据这些邮件处理组件Mailet信息构建成James能够识别与执行的Match与Mailet对,然后将Match与Mailet对对象存放于MailetContext(Mailet上下文)中。本实施例中,通过对外提供一个JMX远程管理接口(MaillistMBean),即Java管理扩展远程管理接口,对存放于MailetContext中的邮件处理组件的Match与Mailet对对象进行增、删改操作,并将修改后的Match与Mailet对对象生成相对应的邮件处理组件Mailet信息存回于XML文件中,这样当修改了邮件处理组件配置信息之后,James服务器就不用再进行重起操作也能使之生效。

上述过程中,步骤S46的的具体操作为,将处理后的对象生成与其相对应的处理后的邮件处理组件配置信息,并将所述的处理后的邮件处理组件配置信息存储回邮件服务器。由于增加了可以对外的JMX远程操作接口,用户可以在内存中修改邮件处理组件配置信息,使之生效,不需要再对服务器进行重启操作,从而解决了不能动态修改邮件处理组件配置信息的问题,方便了对服务器的修改和升级。

实施例二

James邮件服务器中的Mailet信息以前是存放于XML文件中的,但是一个邮件列表中分成的两个邮件处理组件结点中的配置信息有很大一部分的属性是相同的。这样不仅造成数据的冗余,而且修改起来也很不方便。为了优化系统的存储方式,方便动态的配置邮件处理组件信息,现将邮件处理组件的各个Mailet信息共分成四个表来存储于关系式数据库中,其链式结构如图6所示。将配置邮件处理组件的配置信息存储在关系式数据库的表中。其中listconfig表用于存储邮件处理组件的主要配置信息,listcommand表用于存储邮件处理组件的列表命令信息,listattribute表用于存储邮件处理组件的开关配置信息,listallowedposter表用于存储允许发往指定邮件处理组件的邮件地址信息。除配置邮件处理组件的配置信息外的其他配置信息存储在XML文件中。

本发明实施例2公开的动态修改邮件处理组件配置信息的方法流程如图7所示,包括:

步骤S71、邮件处理组件配置信息处理装置读取由邮件服务器加载到系统内存中的配置文件信息中的邮件处理组件结点信息;

步骤S72、根据结点信息判断邮件处理组件配置信息的存储位置,若存储在关系式数据库中,则执行步骤S731,若存储在XML文件中,则执行步骤S732;

步骤S731、从关系式数据库中读取邮件处理组件配置信息,执行步骤S74;

步骤S732、从XML文件中读取邮件处理组件配置信息,执行步骤S74;

步骤S74、根据邮件处理组件配置信息生成邮件服务器James能够识别并执行的Match与Mailet对,并存放于MailetContext邮件处理组件配置信息上下文中;

步骤S75、通过对外的JMX远程操作接口,修改邮件处理组件的邮件处理组件配置信息;

步骤S76、将修改后的邮件处理组件配置信息保存回服务器中关系式数据库或XML文件中。

本实施例中的邮件处理组件配置信息与实施例1相同,同样对应实现远程JMX操作接口的类模块,在启动James的时候,自动根据邮件列表配置信息读取存储于关系式数据库或者XML文件中的邮件处理组件Mailet配置信息,并根据这些邮件处理组件Mailet信息构建成James能够识别与执行的Match与Mailet对,然后将Match与Mailet对对象存放于MailetContext中。通过JMX远程管理接口,对存放于MailetContext中的邮件处理组件的Match与Mailet对对象进行增、删改操作,并将修改后的Match与Mailet对对象生成相对应的邮件处理组件Mailet信息存回于关系式数据库或者XML文件中。

本实施例中,由于将配置邮件处理组件的配置文件采用数据库的形式进行存储,在一定程度上优化了配置文件的存储结构,解决了现有技术中配置信息存储冗余的问题,同时,增加了一种配置信息的保存形式,为配置信息提供了关系式数据库方式的持久化支持。而且,这种存储结构方便了动态的配置邮件处理组件信息。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本领域技术人员可以理解,可以使用许多不同的工艺和技术中的任意一种来表示信息、消息和信号。例如,上述说明中提到过的消息、信息都可以表示为电压、电流、电磁波、磁场或磁性粒子、光场或以上任意组合。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号