本公开涉及计算机通信技术领域,尤其涉及一种邮件处理方法及装置。
背景技术:
公司内部设有多个管理系统,如任务管理系统、审批系统、报销系统等,多个管理系统部署在不同设备上。管理系统通过所在设备向公司内部的邮件服务器发送邮件,由邮件服务器将邮件发送给用户。在使用过程中,如果管理系统因出现漏洞而向邮件服务器发送超量邮件,或者,多个管理系统在短时间内的邮件发送量出现激增,则会使邮件服务器出现宕机,导致整个邮件服务不可用。
为解决上述问题,相关技术中,管理系统发送邮件时,先将邮件发送给postfix电子邮件服务器,再由postfix将邮件发送给邮件服务器,postfix监控某个ip(internetprotocol,网际互连协议)地址的邮件发送量是否超过阈值,如果超过阈值,则由postfix的运维人员手动封掉该ip地址,不对该ip地址后续发送的邮件进行转发,从而保证邮件服务器的稳定性。
上述方法通过运维人员手动封掉ip地址的方式来保证邮件服务器的稳定性,系统无法对邮件服务器进行自动保护。
技术实现要素:
有鉴于此,本公开提供一种邮件处理方法及装置,通过邮件中继服务器接收客户端发送的待发送邮件,采用责任链对待发送邮件进行检测,根据检测结果确定待发送邮件的处理方式并进行处理,实现对邮件服务器的自动保护。
根据本公开实施例的第一方面,提供了一种邮件处理方法,应用于邮件中继服务器,所述方法包括:
接收客户端发送的待发送邮件;
采用责任链对所述待发送邮件进行检测;其中,所述责任链包括至少两个检测节点,且每个检测节点对应至少一种检测方式;
根据检测结果确定所述待发送邮件的处理方式并进行处理。
可选地,所述根据检测结果确定所述待发送邮件的处理方式并进行处理,包括:
针对每个检测节点,响应于所述待发送邮件通过该检测节点的检测,使用与所述检测节点顺次连接的下一检测节点对所述待发送邮件进行检测,直到通过所述责任链中最后一个检测节点的检测,将所述待发送邮件正常发送;
响应于存在任一检测节点,所述待发送邮件未通过该检测节点的检测,根据检测结果对应的处理方式对所述待发送邮件进行处理。
可选地,所述检测节点包括对邮件发送量进行检测的第一检测节点;采用如下方式对所述待发送邮件进行检测:
根据所述待发送邮件的类型标识确定所述待发送邮件对应的邮件类型,以及所述邮件类型的邮件当前使用的当前发送通道在第一预设时间段内的第一邮件发送量;
将所述第一邮件发送量与所述当前发送通道的发送配额进行比对;
响应于所述待发送邮件未通过所述第一检测节点的检测,根据检测结果对应的处理方式对所述待发送邮件进行处理,包括:
响应于所述第一邮件发送量大于所述当前发送通道的发送配额,采用所述邮件类型对应的当前发送通道的下一级发送通道发送所述待发送邮件;
其中,每种邮件类型对应至少两个不同级别的发送通道,高级别发送通道在预设时段内的发送配额低于低级别发送通道,且高级别发送通道的传输速度大于低级别发送通道。
可选地,所述方法还包括:
响应于所述当前发送通道的下一级发送通道为缓存数据库,将所述待发送邮件缓存至所述缓存数据库;
确定所述当前发送通道在第二预设时间段内的第二邮件发送量;
响应于所述第二邮件发送量达到预设熔断阈值,停止发送所述待发送邮件。
可选地,所述方法还包括:
响应于所述当前发送通道不为所述邮件类型对应的最高级别发送通道,且所述第一预设时间段内的所述第一邮件发送量小于所述当前发送通道的发送配额,采用所述当前发送通道的上一级发送通道发送所述待发送邮件。
可选地,所述检测节点包括:对邮件发送基础组件进行检测的第二检测节点;所述根据检测结果对应的处理方式对所述待发送邮件进行处理,包括:响应于所述第二检测节点检测到所述邮件发送基础组件不符合预设使用条件,停止发送所述待发送邮件;或者,
所述检测节点包括:对邮件标识进行检测的第三检测节点;所述根据检测结果对应的处理方式对所述待发送邮件进行处理,包括:响应于所述第三检测节点检测到已经接收具有所述邮件标识的邮件,停止发送所述待发送邮件;或者,
所述检测节点包括:对收件人进行检测的第四检测节点;所述根据检测结果对应的处理方式对所述待发送邮件进行处理,包括:响应于所述第四检测节点检测到所述待发送邮件的收件人不在预设名单中,停止发送所述待发送邮件。
根据本公开实施例的第二方面,提供了一种邮件处理装置,应用于邮件中继服务器,所述装置包括:
接收模块,被配置为接收客户端发送的待发送邮件;
检测模块,被配置为采用责任链对所述待发送邮件进行检测;其中,所述责任链包括至少两个检测节点,且每个检测节点对应至少一种检测方式;
处理模块,被配置为根据检测结果确定所述待发送邮件的处理方式并进行处理。
可选地,所述处理模块,包括:
第一处理子模块,被配置为针对每个检测节点,响应于所述待发送邮件通过该检测节点的检测,使用与所述检测节点顺次连接的下一检测节点对所述待发送邮件进行检测,直到通过所述责任链中最后一个检测节点的检测,将所述待发送邮件正常发送;
第二处理子模块,被配置为响应于存在任一检测节点,所述待发送邮件未通过该检测节点的检测,根据检测结果对应的处理方式对所述待发送邮件进行处理。
可选地,所述检测节点包括对邮件发送量进行检测的第一检测节点;所述检测模块,包括:
第一确定子模块,被配置为根据所述待发送邮件的类型标识确定所述待发送邮件对应的邮件类型,以及所述邮件类型的邮件当前使用的当前发送通道在第一预设时间段内的第一邮件发送量;
比对子模块,被配置为将所述第一邮件发送量与所述当前发送通道的发送配额进行比对;
所述处理模块,被配置为在所述待发送邮件未通过所述第一检测节点的检测的情况下,响应于所述第一邮件发送量大于所述当前发送通道的发送配额,采用所述邮件类型对应的当前发送通道的下一级发送通道发送所述待发送邮件;
其中,每种邮件类型对应至少两个不同级别的发送通道,高级别发送通道在预设时段内的发送配额低于低级别发送通道,且高级别发送通道的传输速度大于低级别发送通道。
可选地,所述装置还包括:
缓存模块,被配置为响应于所述当前发送通道的下一级发送通道为缓存数据库,将所述待发送邮件缓存至所述缓存数据库;
确定模块,被配置为确定所述当前发送通道在第二预设时间段内的第二邮件发送量;
停止模块,被配置为响应于所述第二邮件发送量达到预设熔断阈值,停止发送所述待发送邮件。
可选地,所述装置还包括:
发送模块,被配置为响应于所述当前发送通道不为所述邮件类型对应的最高级别发送通道,且所述第一预设时间段内的所述第一邮件发送量小于所述当前发送通道的发送配额,采用所述当前发送通道的上一级发送通道发送所述待发送邮件。
可选地,所述检测节点包括:对邮件发送基础组件进行检测的第二检测节点;所述处理模块,被配置为响应于所述第二检测节点检测到所述邮件发送基础组件不符合预设使用条件,停止发送所述待发送邮件;或者,
所述检测节点包括:对邮件标识进行检测的第三检测节点;所述处理模块,被配置为响应于所述第三检测节点检测到已经接收具有所述邮件标识的邮件,停止发送所述待发送邮件;或者,
所述检测节点包括:对收件人进行检测的第四检测节点;所述处理模块,被配置为响应于所述第四检测节点检测到所述待发送邮件的收件人不在预设名单中,停止发送所述待发送邮件。
根据本公开实施例的第三方面,提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一项所述方法的步骤。
根据本公开实施例的第四方面,提供了一种邮件处理装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收客户端发送的待发送邮件;
采用责任链对所述待发送邮件进行检测;其中,所述责任链包括至少两个检测节点,且每个检测节点对应至少一种检测方式;
根据检测结果确定所述待发送邮件的处理方式并进行处理。
本公开实施例提供的技术方案可以包括以下有益效果:
本公开实施例中,邮件中继服务器接收客户端发送的待发送邮件后,采用责任链对待发送邮件进行检测,根据检测结果确定待发送邮件的处理方式并进行处理,实现对邮件服务器的自动保护,保证了邮件服务器的正常运行。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
图1是根据一示例性实施例示出的一种邮件处理方法流程图;
图2是根据一示例性实施例示出的一种邮件处理装置框图;
图3是根据一示例性实施例示出的一种用于邮件处理的装置的一结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
局域网中设有客户端、邮件服务器和邮件中继服务器,客户端发邮件给邮件中继服务器,由邮件中继服务器将该邮件发送给邮件服务器,邮件中继服务器对客户端发送的邮件进行管理。
图1根据一示例性实施例示出的一种邮件处理方法流程图,图1所示的方法应用于邮件中继服务器,所述方法包括:
在步骤101中,接收客户端发送的待发送邮件。
待发送邮件为邮件中继服务器当前接收的、待转发的邮件。
在一个实施例中,客户端内安装有管理系统,管理系统通过客户端向邮件中继服务器发送邮件。管理系统可以是任务管理系统、审批系统、报销系统等。
在步骤102中,采用责任链对待发送邮件进行检测;其中,责任链包括至少两个检测节点,且每个检测节点对应至少一种检测方式。
责任链包括的所有检测节点位于一条链上,使用责任链上一个检测节点对待发送邮件进行检测,在检测通过的情况下,使用链上下一检测节点对待发送邮件进行检测,在检测未通过的情况下,执行相应操作,如停止发送待发送邮件。
检测节点有多种,例如,对邮件发送量进行检测的检测节点,对邮件发送基础组件进行检测的检测节点,对邮件标识进行检测的检测节点,对收件人进行检测的检测节点等。责任链可以包括上述至少两个检测节点。
在一个可选的实施例中,责任链可以包括对邮件发送量进行检测的检测节点。
邮件中继服务器具有分配类型标识和发送配额的功能,类型标识指示邮件类型,发送配额可以理解为客户端在预设时间段内的邮件发送量上限,不同类型标识对应的发送配额不同。通常分配的发送配额越大,邮件的转发速度越慢,反之,分配的发送配额越小,邮件的转发速度越快。邮件类型有多种,例如重要等级、加密、未加密等。
邮件中继服务器可以提供配置界面,客户端系统的管理员可以登录邮件中继服务器的配置界面,基于邮件转发需求,在配置界面上提交相应申请后,触发邮件中继服务器为其分配类型标识和发送配额。邮件中继服务器可以建立类型标识和发送配额的对应关系。
用户可以将分配的类型标识配置到客户端系统中,使得客户端系统发送邮件时将类型标识添加至待发送的邮件中。例如,通过程序配置将类型标识添加到邮件的发件人字段中。
在应用过程中,检测节点可以从待发送邮件中获取类型标识,基于预先建立的类型标识和发送配额的对应关系,确定该类型标识对应的目标发送配额,判断客户端系统在预设时间段内的邮件发送量是否超过目标发送配额,其中,客户端为步骤101中发送待发送邮件的客户端。
可选的,邮件中继服务器还可以具有分配系统标识的功能。客户端发送的邮件包括客户端系统的系统标识和类型标识。
邮件中继服务器获取待发送邮件包括的系统标识和类型标识,统计预设时间段内该系统标识对应的邮件发送总量,将邮件发送总量与该类型标识对应的发送配额进行比较。
在一个可选的实施例中,责任链可以包括对邮件发送量进行检测的检测节点。
邮件中继服务器预先设置了至少两种邮件类型,每种邮件类型对应至少两个不同级别的发送通道,高级别发送通道在预设时段内的发送配额低于低级别发送通道,且高级别发送通道的传输速度大于低级别发送通道。
检测节点可以根据待发送邮件的类型标识确定待发送邮件对应的邮件类型,以及该邮件类型的邮件当前使用的当前发送通道在第一预设时间段内的第一邮件发送量,并将第一邮件发送量与该当前发送通道的发送配额进行比对。
在一个可选的实施例中,责任链可以包括对邮件发送基础组件进行检测的检测节点,用于检测邮件中继服务器中邮件发送基础组件是否符合预设使用条件。
邮件发送基础组件有多种,例如rabbitmq、mongodb等,检测节点可以检测邮件发送基础组件是否正常运行。本实施例中的检测节点可用于判断邮件发送基础组件是否正常运行。
在一个可选的实施例中,责任链可以包括对邮件标识进行检测的检测节点。
检测节点可以待发送邮件的邮件标识,判断是否已经接收具有该邮件标识的邮件。本实施例中的检测节点可用于判断是否已经接收到相同的邮件。
在一个可选的实施例中,责任链可以包括对收件人进行检测的检测节点,用于检测待发送邮件的收件人是否在预设名单中。
在企业中,若收件人在预设名单中,可以理解为收件人在职,若收件人不在预设名单中,可以理解为收件人已经离职。本实施例中的检测节点可用于判断收件人是否在职。
在步骤103中,根据检测结果确定待发送邮件的处理方式并进行处理。
在一个可选的实施例中,邮件中继服务器可以采用下面方式确定待发送邮件的处理方式:第一种方式:针对每个检测节点,响应于待发送邮件通过该检测节点的检测,使用与检测节点顺次连接的下一检测节点对待发送邮件进行检测,直到通过责任链中最后一个检测节点的检测,将待发送邮件正常发送;第二种方式:响应于存在任一检测节点,待发送邮件未通过该检测节点的检测,根据检测结果对应的处理方式对待发送邮件进行处理。
针对第一种方式,在待发送邮件通过所有检测节点的检测后,可以按照原发送速度发送待发送邮件。
针对第二种方式,针对每个检测节点,可以预先设置待发送邮件未通过本检测节点检测时的处理方式。
在一个可选的实施例中,在责任链可以包括对邮件发送量进行检测的检测节点的情况下,该检测节点的检测方式已经在步骤102中介绍,该检测节点通过比较第一邮件发送量与该当前发送通道的发送配额,确定第一邮件发送量大于当前发送通道的发送配额后,采用邮件类型对应的当前发送通道的下一级发送通道发送待发送邮件。
由于下一级发送通道的传输速度小于当前发送通道的传输速度,因此通过上述方式,降低了待发送邮件的传输速度,从而减小了邮件服务器的邮件发送压力,保证了邮件服务器的稳定性,保证了邮件服务的正常运行。
可选的,在当前发送通道的下一级发送通道为缓存数据库的情况下,检测节点可以将待发送邮件缓存至缓存数据库。进一步,可以确定当前发送通道在第二预设时间段内的第二邮件发送量,在第二邮件发送量达到预设熔断阈值,停止发送待发送邮件。
该检测节点在判定当前发送通道的邮件发送量始终超额时,停止发送待发送邮件,从而进一步减小了邮件服务器的邮件发送压力。
可选的,在使用下一级发送通道发送邮件的过程中,若上述的第二邮件发送量小于预设恢复阈值,则恢复使用当前发送通道发送邮件。预设恢复阈值较小,可选为零。
由于当前发送通道的传输速度大于下一级发送通道的传输速度,因此通过上述方式,在保证邮件服务器正常运行的前提下,提高了待发送邮件的传输速度,提高了用户体验。
可选的,当前发送通道不为邮件类型对应的最高级别发送通道,且第一预设时间段内的第一邮件发送量小于当前发送通道的发送配额的情况下,采用当前发送通道的上一级发送通道发送待发送邮件。
由于上一级发送通道的传输速度大于当前发送通道的传输速度,因此通过上述方式,在保证邮件服务器正常运行的前提下,提高了待发送邮件的传输速度,提高了用户体验。
基于上述方法,邮件中继服务器能够实时调整邮件发送速度,保证了邮件服务器稳定运行。
在一个可选的实施例中,责任链可以包括对邮件发送基础组件进行检测的检测节点,在该检测节点检测到邮件发送基础组件不符合预设使用条件的情况下,停止发送待发送邮件。
在一个可选的实施例中,检测节点包括对邮件标识进行检测的检测节点,在该检测节点检测到已经接收具有该邮件标识的邮件的情况下,停止发送待发送邮件。
在一个可选的实施例中,责任链可以包括对收件人进行检测的检测节点,在该检测节点检测到待发送邮件的收件人不在预设名单中,停止发送待发送邮件。
在一个可选的实施例中,在邮件中继服务器具有分配系统标识、类型标识和发送配额,待发送邮件包括系统标识和类型标识的情况下,上述的检测节点可以采用将待发送邮件的系统标识设为不可用状态的方式,停止发送包括该系统标识的待发送邮件。
责任链还可以包括对系统标识的使用状态进行检测的检测节点
若检测到当前接收的待发送邮件包括的系统标识处于不可用状态,则停止发送待发送邮件。
在客户端内安装有管理系统,邮件中继服务器为管理系统分配系统标识,且该系统标识处于不可用状态的情况下,管理系统的管理员可以登录邮件中继服务器的配置界面,在配置界面上执行系统标识的状态切换操作,触发邮件中继服务器将该系统标识的使用状态切换为可用状态,使得邮件中继服务器继续发送管理系统发送的邮件。
管理人员只需在邮件中继服务器的后台上执行简单的操作,就可以恢复邮件中继服务器继续转发管理系统发送的邮件,省去了运维人员对类型标识的使用状态的管理,节省了人力成本。
在一个可选的实施例中,客户端系统的管理员在邮件中继服务器的配置界面上申请类型标识和系统标识时,同时输入自己的联系方式,称为管理员联系方式,使得邮件中继服务器在分配类型标识和系统标识后,建立系统标识和管理员联系方式的对应关系。管理员联系方式可以包括以下至少一项:邮箱地址、电话号码等。
在邮件中继服务器记录了系统标识和管理员联系方式的对应关系的情形下,邮件中继服务器可以在停止发送待发送邮件时,基于预先存储的对应关系,获取与待发送邮件包括的系统标识对应的管理员联系方式。
邮件中继服务器可以输出该管理员联系方式,以便邮件中继服务器的负责人通过该管理员联系方式与客户端系统的管理员取得联系,告知暂停转发邮件的情况,或者,在管理员联系方式包括客户端系统的管理员的邮箱地址的情况下,邮件中继服务器可以直接向该邮箱地址发送提醒邮件,从而实现自动提醒。
通过上述方式,可以将邮件中继服务器停止转发客户端发送的邮件的情况,及时告知客户端系统的管理员,便于客户端系统的管理员及时处理。
为使本领域技术人员更加清楚地理解本公开,通过下面示例对本公开提供的方法进行详细说明。
本示例提供了一种邮件处理方法,将邮件处理方法拆分成多个步骤,一个链环模块只处理一个步骤。
客户端内安装有管理系统,管理系统获取邮件中继服务器分配的系统标识token和类型标识,管理系统通过客户端向邮件中继服务器发送待发送邮件,待发送邮件包括token和类型标识,邮件中继服务器在接收到客户端发送的待发送邮件后,可以执行以下操作:
步骤一、检查服务的基础组件rabbitmq和mongodb是否正常运行。
步骤二、检查待发送邮件中token是否处于可用状态,若是,则基于预先建立的token和管理系统的管理员联系方式的对应关系,确定该token对应的管理员联系方式,执行步骤三;若否,则停止发送待发送邮件给邮件服务器。
步骤三、获取待发送邮件的邮件标识,判断是否已经接收具有该邮件标识的邮件,若是,则停止发送待发送邮件给邮件服务器;若否,则执行步骤四。
步骤四、确定预设时段内接收的包括该token的邮件的总数量是否达到总量阈值,若是,则停止发送包括该token的邮件,并向管理系统的管理员发送报警邮件,提醒其及时处理。邮件中继服务器停止发送包括该token的邮件,简称熔断token逻辑,避免了邮件服务器被一个管理系统大量发送邮件拖垮、宕机,保证了邮件服务器的正常运行。
步骤五、若预设时段内接收的包括该token的邮件的总量小于总量阈值,则检查邮件的收件人是否在职,若在职,则执行步骤六;若已经离职,则自动去除已离职的收件人。对于公司内部,通常设有在职人员表,邮件中继服务器可以基于在职人员表,确定收件人是否在职。
步骤六、根据待发送邮件的类型标识确定待发送邮件对应加密邮件类型,确定包括该token的且加密邮件类型的邮件当前使用的当前发送通道在第一预设时间段内的第一邮件发送量。
判断第一邮件发送量是否达到加密邮件类型对应的邮件发送量上限,若未达到,则使用当前通道发送待发送邮件,待发送邮件的发送速度较快;若达到,则将待发送邮件缓存至缓存数据库或消息队列中,再以较慢的发送速度发送待发送邮件,从而减慢待发送邮件的发送速度。
在将待发送邮件缓存至缓存数据库或消息队列中之后,确定该当前发送通道在后续的第二预设时间段内的第二邮件发送量,判断第二邮件发送量是否达到预设熔断阈值,若达到,则停止发送包括该token的邮件,若未达到,则判断第二邮件发送量是否小于预设值,预设值较小,若小于,则恢复使用当前发送通道发送包括该token的邮件,恢复包括该token的邮件的发送速度。
步骤七、记录包括该token的邮件的总件数、该管理系统发送的邮件的总件数、邮件中继服务器接收的邮件的总件数等。
对于公司内部,可以通过获取上述记录的数据,来了解每个管理部门在一段时间内如一年内发送的邮件的总件数、公司所有部门在一段时间内发送的邮件的总件数等,便于公司统计管理。
缓存数据库可以是mongodb(基于分布式文件存储的数据库),消息队列可以是rabbitmq(messagequeue,消息队列)。可以使用其他的队列技术替代rabbitmq,也可以使用其他的数据库技术如mysql(关系型数据库管理系统)替代mongodb。
这些替换会带来服务性能的改变,上述组件和责任链的步骤是经过反复测试和评估得出的结论,能够在达到预期效果的同时保证服务的稳定性。
使用责任链模式处理邮件,降低代码的复杂度提高代码的可读性,同时易于维护和重构,如果要添加新的处理邮件的逻辑只需要在责任链中添加新的链环即可。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。
其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
与前述应用功能实现方法实施例相对应,本公开还提供了应用功能实现装置及相应的终端的实施例。
图2是根据一示例性实施例示出的一种邮件处理装置框图,应用于邮件中继服务器,所述装置包括:接收模块21、检测模块22和处理模块23;其中,
所述接收模块21,被配置为接收客户端发送的待发送邮件;
所述检测模块22,被配置为采用责任链对所述待发送邮件进行检测;其中,所述责任链包括至少两个检测节点,且每个检测节点对应至少一种检测方式;
所述处理模块23,被配置为根据检测结果确定所述待发送邮件的处理方式并进行处理。
在一个可选的实施例中,在图2所示的邮件处理装置的基础上,所述处理模块23,可以包括:第一处理子模块和第二处理子模块;其中,
所述第一处理子模块,被配置为针对每个检测节点,响应于所述待发送邮件通过该检测节点的检测,使用与所述检测节点顺次连接的下一检测节点对所述待发送邮件进行检测,直到通过所述责任链中最后一个检测节点的检测,将所述待发送邮件正常发送;
所述第二处理子模块,被配置为响应于存在任一检测节点,所述待发送邮件未通过该检测节点的检测,根据检测结果对应的处理方式对所述待发送邮件进行处理。
在一个可选的实施例中,所述检测节点可以包括对邮件发送量进行检测的第一检测节点;所述检测模块,可以包括:第一确定子模块和比对子模块;其中,
所述第一确定子模块,被配置为根据所述待发送邮件的类型标识确定所述待发送邮件对应的邮件类型,以及所述邮件类型的邮件当前使用的当前发送通道在第一预设时间段内的第一邮件发送量;
所述比对子模块,被配置为将所述第一邮件发送量与所述当前发送通道的发送配额进行比对;
所述处理模块23,可以被配置为在所述待发送邮件未通过所述第一检测节点的检测的情况下,响应于所述第一邮件发送量大于所述当前发送通道的发送配额,采用所述邮件类型对应的当前发送通道的下一级发送通道发送所述待发送邮件;
其中,每种邮件类型对应至少两个不同级别的发送通道,高级别发送通道在预设时段内的发送配额低于低级别发送通道,且高级别发送通道的传输速度大于低级别发送通道。
在一个可选的实施例中,所述装置还可以包括:缓存模块、确定模块和停止模块;其中,
所述缓存模块,被配置为响应于所述当前发送通道的下一级发送通道为缓存数据库,将所述待发送邮件缓存至所述缓存数据库;
所述确定模块,被配置为确定所述当前发送通道在第二预设时间段内的第二邮件发送量;
所述停止模块,被配置为响应于所述第二邮件发送量达到预设熔断阈值,停止发送所述待发送邮件。
在一个可选的实施例中,所述装置还可以包括:发送模块;
所述发送模块,被配置为响应于所述当前发送通道不为所述邮件类型对应的最高级别发送通道,且所述第一预设时间段内的所述第一邮件发送量小于所述当前发送通道的发送配额,采用所述当前发送通道的上一级发送通道发送所述待发送邮件。
在一个可选的实施例中,所述检测节点可以包括:对邮件发送基础组件进行检测的第二检测节点;所述处理模块,可以被配置为响应于所述第二检测节点检测到所述邮件发送基础组件不符合预设使用条件,停止发送所述待发送邮件;或者,
所述检测节点可以包括:对邮件标识进行检测的第三检测节点;所述处理模块,可以被配置为响应于所述第三检测节点检测到已经接收具有所述邮件标识的邮件,停止发送所述待发送邮件;或者,
所述检测节点可以包括:对收件人进行检测的第四检测节点;所述处理模块,被配置可以为响应于所述第四检测节点检测到所述待发送邮件的收件人不在预设名单中,停止发送所述待发送邮件。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在示例性实施例中,还提供了一种用于邮件处理的装置,图3是根据一示例性实施例示出的一种用于邮件处理的装置的一结构示意图,图3所示的装置可以包括:通过内部总线310连接的存储器320、处理器330和外部接口340;
其中,外部接口340,用于接收客户端发送的待发送邮件;
存储器320,用于存储扫描对应的机器可读指令;
处理器330,用于读取所述存储器320上的所述机器可读指令,并执行所述指令以实现如下操作:
采用责任链对所述待发送邮件进行检测;其中,所述责任链包括至少两个检测节点,且每个检测节点对应至少一种检测方式;
根据检测结果确定所述待发送邮件的处理方式并进行处理。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,例如包括指令的存储器1604,当存储介质中的指令由装置1600的处理器1620执行时,使得装置1600能够执行邮件处理方法,该方法包括:接收客户端发送的待发送邮件,采用责任链对所述待发送邮件进行检测;其中,所述责任链包括至少两个检测节点,且每个检测节点对应至少一种检测方式,根据检测结果确定所述待发送邮件的处理方式并进行处理。
所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
1.一种邮件处理方法,其特征在于,应用于邮件中继服务器,所述方法包括:
接收客户端发送的待发送邮件;
采用责任链对所述待发送邮件进行检测;其中,所述责任链包括至少两个检测节点,且每个检测节点对应至少一种检测方式;
根据检测结果确定所述待发送邮件的处理方式并进行处理。
2.根据权利要求1所述的方法,其特征在于,所述根据检测结果确定所述待发送邮件的处理方式并进行处理,包括:
针对每个检测节点,响应于所述待发送邮件通过该检测节点的检测,使用与所述检测节点顺次连接的下一检测节点对所述待发送邮件进行检测,直到通过所述责任链中最后一个检测节点的检测,将所述待发送邮件正常发送;
响应于存在任一检测节点,所述待发送邮件未通过该检测节点的检测,根据检测结果对应的处理方式对所述待发送邮件进行处理。
3.根据权利要求1或2所述的方法,其特征在于,所述检测节点包括对邮件发送量进行检测的第一检测节点;采用如下方式对所述待发送邮件进行检测:
根据所述待发送邮件的类型标识确定所述待发送邮件对应的邮件类型,以及所述邮件类型的邮件当前使用的当前发送通道在第一预设时间段内的第一邮件发送量;
将所述第一邮件发送量与所述当前发送通道的发送配额进行比对;
响应于所述待发送邮件未通过所述第一检测节点的检测,根据检测结果对应的处理方式对所述待发送邮件进行处理,包括:
响应于所述第一邮件发送量大于所述当前发送通道的发送配额,采用所述邮件类型对应的当前发送通道的下一级发送通道发送所述待发送邮件;
其中,每种邮件类型对应至少两个不同级别的发送通道,高级别发送通道在预设时段内的发送配额低于低级别发送通道,且高级别发送通道的传输速度大于低级别发送通道。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于所述当前发送通道的下一级发送通道为缓存数据库,将所述待发送邮件缓存至所述缓存数据库;
确定所述当前发送通道在第二预设时间段内的第二邮件发送量;
响应于所述第二邮件发送量达到预设熔断阈值,停止发送所述待发送邮件。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于所述当前发送通道不为所述邮件类型对应的最高级别发送通道,且所述第一预设时间段内的所述第一邮件发送量小于所述当前发送通道的发送配额,采用所述当前发送通道的上一级发送通道发送所述待发送邮件。
6.根据权利要求1或2所述的方法,其特征在于,所述检测节点包括:对邮件发送基础组件进行检测的第二检测节点;所述根据检测结果对应的处理方式对所述待发送邮件进行处理,包括:响应于所述第二检测节点检测到所述邮件发送基础组件不符合预设使用条件,停止发送所述待发送邮件;或者,
所述检测节点包括:对邮件标识进行检测的第三检测节点;所述根据检测结果对应的处理方式对所述待发送邮件进行处理,包括:响应于所述第三检测节点检测到已经接收具有所述邮件标识的邮件,停止发送所述待发送邮件;或者,
所述检测节点包括:对收件人进行检测的第四检测节点;所述根据检测结果对应的处理方式对所述待发送邮件进行处理,包括:响应于所述第四检测节点检测到所述待发送邮件的收件人不在预设名单中,停止发送所述待发送邮件。
7.一种邮件处理装置,其特征在于,应用于邮件中继服务器,所述装置包括:
接收模块,被配置为接收客户端发送的待发送邮件;
检测模块,被配置为采用责任链对所述待发送邮件进行检测;其中,所述责任链包括至少两个检测节点,且每个检测节点对应至少一种检测方式;
处理模块,被配置为根据检测结果确定所述待发送邮件的处理方式并进行处理。
8.根据权利要求7所述的装置,其特征在于,所述处理模块,包括:
第一处理子模块,被配置为针对每个检测节点,响应于所述待发送邮件通过该检测节点的检测,使用与所述检测节点顺次连接的下一检测节点对所述待发送邮件进行检测,直到通过所述责任链中最后一个检测节点的检测,将所述待发送邮件正常发送;
第二处理子模块,被配置为响应于存在任一检测节点,所述待发送邮件未通过该检测节点的检测,根据检测结果对应的处理方式对所述待发送邮件进行处理。
9.根据权利要求7或8所述的装置,其特征在于,所述检测节点包括对邮件发送量进行检测的第一检测节点;所述检测模块,包括:
第一确定子模块,被配置为根据所述待发送邮件的类型标识确定所述待发送邮件对应的邮件类型,以及所述邮件类型的邮件当前使用的当前发送通道在第一预设时间段内的第一邮件发送量;
比对子模块,被配置为将所述第一邮件发送量与所述当前发送通道的发送配额进行比对;
所述处理模块,被配置为在所述待发送邮件未通过所述第一检测节点的检测的情况下,响应于所述第一邮件发送量大于所述当前发送通道的发送配额,采用所述邮件类型对应的当前发送通道的下一级发送通道发送所述待发送邮件;
其中,每种邮件类型对应至少两个不同级别的发送通道,高级别发送通道在预设时段内的发送配额低于低级别发送通道,且高级别发送通道的传输速度大于低级别发送通道。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
缓存模块,被配置为响应于所述当前发送通道的下一级发送通道为缓存数据库,将所述待发送邮件缓存至所述缓存数据库;
确定模块,被配置为确定所述当前发送通道在第二预设时间段内的第二邮件发送量;
停止模块,被配置为响应于所述第二邮件发送量达到预设熔断阈值,停止发送所述待发送邮件。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
发送模块,被配置为响应于所述当前发送通道不为所述邮件类型对应的最高级别发送通道,且所述第一预设时间段内的所述第一邮件发送量小于所述当前发送通道的发送配额,采用所述当前发送通道的上一级发送通道发送所述待发送邮件。
12.根据权利要求7或8所述的装置,其特征在于,所述检测节点包括:对邮件发送基础组件进行检测的第二检测节点;所述处理模块,被配置为响应于所述第二检测节点检测到所述邮件发送基础组件不符合预设使用条件,停止发送所述待发送邮件;或者,
所述检测节点包括:对邮件标识进行检测的第三检测节点;所述处理模块,被配置为响应于所述第三检测节点检测到已经接收具有所述邮件标识的邮件,停止发送所述待发送邮件;或者,
所述检测节点包括:对收件人进行检测的第四检测节点;所述处理模块,被配置为响应于所述第四检测节点检测到所述待发送邮件的收件人不在预设名单中,停止发送所述待发送邮件。
13.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1~6中任一项所述方法的步骤。
14.一种邮件处理设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收客户端发送的待发送邮件;
采用责任链对所述待发送邮件进行检测;其中,所述责任链包括至少两个检测节点,且每个检测节点对应至少一种检测方式;
根据检测结果确定所述待发送邮件的处理方式并进行处理。
技术总结