邮件解析方法、邮件解析系统、电子设备和可读存储介质与流程

文档序号:16199002发布日期:2018-12-08 06:25阅读:288来源:国知局
邮件解析方法、邮件解析系统、电子设备和可读存储介质与流程

本发明涉及一种邮件解析方法、邮件解析系统、电子设备和可读存储介质,具体而言,通过基于定时调度和云存储来实现可配置的邮件解析。

背景技术

大型的电子商务网站,尤其是直接面向个体消费者的b2c商务网站,每天都会接收大量的电子邮件。并且电子邮件已是员工之间互相沟通、传达旨意、汇报工作的重要手段。公司设有各种企业邮箱来实现不同的分工,如客服邮箱专门接收客户邮件,解绑邮箱专门接收客户账号和手机号的解绑请求。为了解决多名客服之间协同处理大量邮件。现有技术中使用clover2.0分布式定时任务系统完成对指定邮箱中邮件的实时扫描,使用javamail技术对邮件进行解析。

clover2.0分布式定时任务系统是一种企业服务器总线,其通过对soa服务集成与调度,使系统具有更低的耦合,和更好的扩展能力等。通过worker来实现调度服务。每一个worker相当于一个调度服务,每个worker使用web作为宿主服务器,同时让clover统一管理,如调度任务线程数,运行时间、开启关闭等。

将邮件转换为邮件请求录入数据库,再将不同的请求分发给不同的客服。实现多名客服之间协同处理同一邮箱中的不同邮件,发送邮件时发件人又为同一邮箱。

通常,对于商务网站而言,当某项业务每次新增一个邮箱,例如将其用于接受客户邮件,则商务网站就要多增加一个worker定时任务来解析。而企业的业务增长量和不同的业务场景又是在不断地变化,这样以来,如果每新增一个邮箱,就要重新开发一个邮箱解析任务,这样不仅增加了工作量,还延长了新需求的上线时间。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:

1)单线程解析,处理速度慢。

由于邮件没有分片号,如果多线程同时解析一个邮箱会带来邮件解析重复、数据重复录入等问题。

2)新增邮箱需重新开发代码

随着业务场景的扩展,每次新增邮箱,都要重新开发一个邮件的自动解析服务。而且代码的重复度高,不仅给工程师造成额外的工作负担,更影响工作进度。

3)服务器磁盘占用空间大。

邮件的附件直接保存到每台应用服务器上,会占用大量的磁盘空间。



技术实现要素:

有鉴于此,本发明实施例的一个方面提供了一种邮件解析方法,其包括:通过多个第一邮箱中的每个邮箱来接收邮件;根据邮箱映射关系,通过邮件转发服务器将来自每个所述第一邮箱的邮件分发到一个或多个第二邮箱,以在该第二邮箱中进行邮件解析,其中,所述第一邮箱和所述第二邮箱通过所述邮箱映射关系来被关联;对每个所述第二邮箱分别分配一个对应的线程,进而以并行方式对每个所述第二邮箱同时进行解析;以及根据所述解析的解析结果,来配置所述邮箱映射关系。

进一步地,所述邮件解析方法还包括:如果解析结果示出在所述多个第一邮箱中的至少一个邮箱的邮件量增加,则扩展该至少一个邮箱所对应的第二邮箱的个数。

进一步地,所述邮件解析方法还包括:如果解析结果示出在所述多个第一邮箱中的至少一个邮箱的邮件量减少,则缩减该至少一个邮箱所对应的第二邮箱的个数。

进一步地,所述邮件解析方法还包括:在对邮件进行解析的过程中,对所述第二邮箱中的每个邮箱单独分配一个线程,以执行邮件解析。

进一步地,所述邮件解析方法还包括:通过云存储方式,将被解析后的邮件的附件统一保存在云存储服务器中,同时将被保存的附件的路径保存到数据库中。

进一步地,所述邮件解析方法还包括:将被解析后的邮件转化为邮件请求并且创建邮件请求表,在所述邮件请求表中,保存有所述邮件的标题和文本。

本发明实施例的另一个方面提供了一种邮件解析系统,其包括:邮件服务器,其包含多个第一邮箱和多个第二邮箱,所述第一邮箱用于接收来自所述系统外部的邮件;邮件转发服务器,其用于将来自所述第一邮箱的邮件分发到所述第二邮箱;任务调度服务器,其用于解析所述第二邮箱中的邮件;以及邮箱配置部,其用于配置关于所述第一邮箱以及所述第二邮箱中的每个的邮箱信息,并且包含所述第一邮箱和所述第二邮箱的邮箱映射关系,其中,根据邮箱映射关系,通过邮件转发服务器将来自每个所述第一邮箱的邮件分发到所述第二邮箱中的一个或多个,以在该第二邮箱中进行邮件解析,通过所述任务调度服务器,对每个所述第二邮箱进行解析;以及通过所述邮箱配置部,根据所述解析的解析结果,来配置所述邮箱映射关系。

进一步地,在所述邮件解析系统中,如果解析结果示出在所述多个第一邮箱中的至少一个邮箱的邮件量增加,则所述邮箱配置部扩展该至少一个邮箱所对应的第二邮箱的个数。

进一步地,在所述邮件解析系统中,如果解析结果示出在所述多个第一邮箱中的至少一个邮箱的邮件量减少,则所述邮箱配置部缩减该至少一个邮箱所对应的第二邮箱的个数。

进一步地,在所述邮件解析系统中,所述任务调度服务器对所述第二邮箱中的每个邮箱单独分配一个线程,以执行邮件解析。

进一步地,在所述邮件解析系统中,所述的邮件解析系统还包括云存储服务器,其中,通过云存储方式,将被解析后的邮件的附件统一保存在所述云存储服务器中,同时将附件的路径保存到数据库中。

进一步地,在所述邮件解析系统中,所述邮件解析系统还包括邮件文本服务器,其中,所述任务调度服务器还用于:将被解析后的邮件转化为邮件请求并且创建邮件请求表,并将该邮件请求表保存在所述邮件文本服务器中,在所述邮件请求表中,保存有所述邮件的标题和文本。

本发明实施例的另一个方面提供了一种电子设备,其包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述各方面所述的方法。

本发明实施例的另一个方面提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述各方面所述的方法。

本发明的实施例具有如下优点或有益效果。具体而言,由于解析邮箱是可配置的,因此每次新增邮箱时不用再重新开发代码,无需应用服务器的部署和重启。此外,通过映射而间接实现多线程处理单个邮箱,提高了大数据量邮件解析的快速处理能力,进而提高了解析速度。通过对邮件实现了快速回复,而间接提升了客户体验。进一步地,通过使用云存储技术,实现了节省服务器磁盘的占用的突出的效果。另外,通过对邮箱列表可视化管理,能够使用增删改查的操作来对邮箱进行页面管理。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是现有技术的邮件解析方法的示意图;

图2是根据本发明实施例的邮件解析方法所构造的示意图;

图3是示出了根据本发明实施例的邮件解析方法所构造的邮件解析系统的框图;

图4是示出根据本发明实施例的邮箱映射配置的示意图;

图5是示出根据本发明实施例的邮件解析中心的示意图;

图6是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

参见附图1,现有技术使用worker作为定时调度手段来自动解析邮件,并将邮件文本(标题、内容)保存到数据库中。现有技术针对多个不同的专用邮箱,即邮箱1至邮箱n,采用多个worker,即worker1至workn来分别进行解析。

并且,将邮件的附件直接保存在应用服务器磁盘的特定目录下,并使用mount命令对特定目录做磁盘共享。这样在查看邮件附件时,无论附件在哪个磁盘,都可以进行下载。

但是,现有技术存在很多缺陷。例如,由于是采用单线程解析,所以处理速度慢。由于邮件没有分片号,如果多线程同时解析一个邮箱会带来邮件解析重复、数据重复录入等问题。此外,随着业务场景的扩展,每次新增邮箱时,都要重新开发一个邮件的自动解析服务。而且代码的重复度高,不仅给工程师造成额外的工作负担,更影响工作进度。并且,由于邮件的附件直接保存到每台应用服务器上,会占用大量的磁盘空间。

图2是根据本发明实施例的系统的示意图。

图2中,示出了邮箱a和邮箱b,作为对外邮箱(第一邮箱)。注意,对外邮箱数量不限于两个。此外,图2还示出了多个内部邮箱(第二邮箱)a1、a2、a3和b1等。注意,内部邮箱数量不限于四个。

通过邮件转发服务器将所述外部邮箱中的邮件分发到对应的内部邮箱中,以在该内部邮箱中进行邮件解析,其中,所述外部邮箱和所述内部邮箱通过所述邮箱映射关系来被关联。使用任务调度服务器,以并行方式周期性地同时解析内部邮箱(a1、a2、a3)。通过对内部邮箱中的邮件的解析性能进行分析,基于当前邮件的接收量和未来增长趋势,能够判断是否对邮件映射关系进行配置,例如,判断是要增加还是减少所述内部邮箱的数量。

如果对外邮箱——例如,假设为邮箱a的邮件量增加,则可扩展该邮箱a所对应的内部邮箱个数,从而实现快速解析。反之,例如,如果对外邮箱a的邮件量减少,则可缩减该邮箱a所对应的内部邮箱个数。具体而言,针对每个内部邮箱a2、a3、a4等,分别分配一个对应的线程来进行解析,使得这些内部邮箱的解析同时并行进行。此外,针对每个内部邮箱,任务调度服务器会分配一个线程,并且定时地,例如,以每隔几分钟的方式,来轮询解析该内部邮箱中的所有邮件。

另外,参见附图2,使用云存储来保存邮件附件。具体而言,将被解析后的邮件的附件统一保存在云存储服务器中,同时将被保存的附件的路径保存到数据库中。通过将附件的路径保存到数据库中,通过路径可快速查找和下载附件。这样实现了附件的统一管理。

图3是根据本发明实施例的系统的框图。

在图3中,所示出的系统包含邮件服务器31,邮箱配置中心(邮箱配置部)32,邮件解析中心(邮件解析部)33,文本存储服务器34以及附件存储服务器35。邮件服务器31至少具有以下功能:对外邮箱负责接收所有外部邮件;以及通过邮箱映射关系,将邮件分发到对应的worker解析邮箱中。通过邮件服务器31,来间接地实现对单个对外邮箱多线程解析。

图4是示出根据本发明实施例的邮箱映射配置的示意图。参见附图4,上图中编号40、41、42、43和n分别代表一个邮箱,n为大于0的自然数。

邮箱40作为对外邮箱,专门用来接收各种外部邮件。对外邮箱可是多个,例如客服邮箱,解绑邮箱等等。客户邮箱通常用来接收客户给例如商务网站的客服人员发的所有邮件,而解绑邮箱通常是客户要求解除手机号绑定的邮箱。通常针对每项业务都可以设置一个专门的对外邮箱。

邮箱41、42、43等为worker解析的内部邮箱,只用来做解析,不负责邮件的接收工作。

邮件服务器31除了负责接收邮件外,还负责根据如附图4所示的邮箱之间的映射关系,将对外邮箱40中的邮件,均衡地分发到内部邮箱41至43中。例如,当一个对外邮箱中有10000封邮件,而一个对外邮箱映射的内部邮箱有10个,则每个内部邮箱中可以被分发1000封邮件。

邮箱配置中心32至少具有以下功能:配置内部邮箱和对外邮箱信息,其中,所述信息包括但不限于如用户名、密码、邮箱地址等信息;以及,配置对外邮箱和内部邮箱的映射关系。在此需要注意是,在将邮箱的用户名和密码等保存到数据中时,这里的数据可以是多条数据,每条数据代表一个邮件解析任务,由worker定时分配线程进行邮件解析。

图5是示出邮件解析中心33所执行的操作的示意图。

邮件解析中心33至少具有以下功能:对每个内部邮箱分配单独分配一个线程,该线程用来实现邮箱解析的工作。

参见附图5,图中41至43分别代表用来做邮件解析的内部邮箱。对于每个内部邮箱设置有一个分片号。

在数据库建表时,定义一个字段作为分片号,该分片号被用来实现多线程分布式处理数据。通常是0-63依次循环。例如,假设有2个线程,其中,线程编号0的线程抓取编号是0、2、4、6、8……62的行记录,线程编号是1的线程抓取1、3、5、7、9、…….63的行记录。换言之,每个线程所分配的分片数是分片总数除以线程数所得到的值。例如,当分片总数为64且线程数为4时,每个线程可以得到64/4=16个分片数。

每个邮箱作为一个处理任务,worker会给每个任务分配一个线程,执行邮件解析。通过这种映射和邮件转发,可间接实现多个线程处理一个对外邮箱的邮件,从而加快了邮件的解析速度。

在本发明中,通过云存储的方式来储存邮件的附件。具体而言,每封邮件都可能包含附件。在对邮件进行解析时,将邮件所带的附件进行压缩,进而统一保存到云存储中。压缩文件使用所请求的id(识别符),并且同时对该压缩文件赋予一个唯一属性。所述的请求id来源于数据库表的自增id。邮件附件在被保存到云存储之前,数据库表会先创建一个行记录,所述请求id是这个行记录的主键,然后将其保存到云存储后,生成一个附件url,会同步更新到数据库的请求id这一行。关于所述请求id,其是数据库表的自增主键,其在表中有全局唯一性。假设收到一封邮件,同时在数据库表中会设置有一个邮件表。由此,可以把邮件表行id作为请求id,这个请求id是作为云存储的文件存储键值,用来作为从云存储中查找文件的参数。

通过采用云存储的方式,避免了将邮件直接保存到解析服务器中,从而不仅减少了磁盘的占用量,还能通过云存储统一管理附件,避免将附件分散到多台服务器上。

根据本发明的实施例的系统,还具有邮件文本数据库。通过将邮件转化为邮件请求,创建邮件请求表,进而保存邮件的标题和文本。并且新建邮件附件表,进而保存邮件附件的云存储路径。

图6是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。

下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机系统600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图6所示,计算机系统600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有系统600操作所需的各种程序和数据。cpu601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。

以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。

特别地,根据本发明公开的实施例,上文如图2所示的根据本发明实施例的邮件解析方法可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行如图2所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(cpu)601执行时,执行本发明的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

需要指出的是,各个附图中的示意图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,各示意图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括邮件服务器单元,其包含多个第一邮箱和多个第二邮箱,所述第一邮箱用于接收来自所述系统外部的邮件;邮件转发服务器单元,其用于将来自所述第一邮箱的邮件分发到所述第二邮箱;任务调度服务器单元,其用于解析所述第二邮箱中的邮件;以及邮箱配置部单元,其用于配置关于所述第一邮箱以及所述第二邮箱中的每个的邮箱信息,并且包含所述第一邮箱和所述第二邮箱的邮箱映射关系。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行以下各个操作:通过多个第一邮箱中的每个邮箱来接收邮件;根据邮箱映射关系,通过邮件转发服务器将来自每个所述第一邮箱的邮件分发到一个或多个第二邮箱,以在该第二邮箱中进行邮件解析,其中,所述第一邮箱和所述第二邮箱通过所述邮箱映射关系来被关联;对每个所述第二邮箱分别分配一个对应的线程,进而以并行方式对每个所述第二邮箱同时进行解析;以及根据所述解析的解析结果,来配置所述邮箱映射关系。

上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。

根据本发明实施例的技术方案,能够实现的有益效果。

(1)解析邮箱是可配置的,因此每次新增邮箱时不用再重新开发代码。

(2)通过映射间接实现多线程处理单个邮箱,提高了解析速度。进而实现对邮件的快速回复,从而间接提升客户体验。

(3)使用云存储技术节省web服务器磁盘的占用。

(4)邮箱列表可视化管理,使用增删改查操作对邮箱进行页面管理。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1