邮件发送方法和装置与流程

文档序号:19105096发布日期:2019-11-12 22:35阅读:201来源:国知局
邮件发送方法和装置与流程

本发明涉及互联网领域,具体而言,涉及一种邮件发送方法和装置。



背景技术:

邮件服务器是一个负责收发邮件的设备,一个邮件消息的典型旅程是从发信人的用户代理开始,发信人在邮箱中写好邮件,邮箱通过发信人的邮件服务器将邮件中转至收信人的邮件服务器,然后再投放到收信人的邮箱中。在这个过程中,若发信人的邮件服务器崩溃,则会导致所有邮件无法发送,若收信人的邮件服务器崩溃,则会导致邮件无法发送给该收件人,且在邮件服务器崩溃之后,会导致无法发送报警邮件给用户和技术人员。

若邮件服务器崩溃的情况,只能等待邮件服务器修复之后,通过操作人员手动发送,若发送失败的邮件过多,则会给工作人员造成大量重复劳动。

针对现有技术中在邮件服务器崩溃的情况下需要手动重新发送邮件的技术问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种邮件发送方法和装置,以至少解决在邮件服务器崩溃的情况下需要手动重新发送邮件的技术问题。

根据本发明实施例的一个方面,提供了一种邮件发送方法,该邮件发送方法包括:获取发送失败或者接收失败的多个邮件及每个邮件对应的邮件信息,其中,邮件信息至少包括邮件的发送邮箱的配置信息和接收邮箱的配置信息,发送邮箱和接收邮箱对应于同一邮件服务器或分别对应于不同的邮件服务器;根据多个邮件及对应的邮件信息建立邮件队列;对邮件队列执行检测操作,其中,检测操作包括检测邮件队列中的邮件对应的邮件服务器是否为正常状态;当检测到邮件信息对应的邮件服务器为正常状态时,将邮件及邮件对应的报警邮件发送至邮件服务器。

进一步地,对邮件队列执行检测操作包括:判断与前一次执行检测操作之间的间隔时间是否达到第一预设时间;在间隔时间达到第一预设时间的情况下,按照预设顺序依次从邮件队列中读取邮件信息,其中,邮件信息还包括邮件服务器的IP地址;发送测试数据包至IP地址,其中,测试数据包用于检测邮件服务器是否为正常状态;若在预设时间段内接收到邮件服务器的响应信息,则确定邮件服务器为正常状态;若在预设时间段内没有接收到响应信息,则确定邮件服务器不为正常状态。

进一步地,发送测试数据包至IP地址包括:通过PING命令发送测试数据包至IP地址。

进一步地,邮件发送方法还包括:在初次执行检测操作时,记录执行检测操作的累计时长;在累计时长达到第二预设时间的情况下,清空邮件队列。

进一步地,在将邮件及邮件对应的报警邮件发送至邮件服务器之后,邮件发送方法还包括:将邮件信息从邮件队列中删除。

根据本发明实施例的另一方面,还提供了一种邮件发送装置,该邮件发送装置包括:获取模块,用于获取发送失败或者接收失败的多个邮件及每个邮件对应的邮件信息,其中,邮件信息至少包括邮件的发送邮箱的配置信息和接收邮箱的配置信息,发送邮箱和接收邮箱对应于同一邮件服务器或分别对应于不同的邮件服务器;处理模块,用于根据多个邮件及对应的邮件信息建立邮件队列;检测模块,用于对邮件队列执行检测操作,其中,检测操作包括检测邮件队列中的邮件对应的邮件服务器是否为正常状态;发送模块,用于当检测到邮件信息对应的邮件服务器为正常状态时,将邮件及邮件对应的报警邮件发送至邮件服务器。

进一步地,检测模块包括:判断子模块,用于判断与前一次执行检测操作之间的间隔时间是否达到第一预设时间;读取子模块,用于在间隔时间达到第一预设时间的情况下,按照预设顺序依次从邮件队列中读取邮件信息,其中,邮件信息还包括邮件服务器的IP地址;测试子模块,用于发送测试数据包至IP地址,其中,测试数据包用于检测邮件服务器是否为正常状态;第一确定子模块,用于若在预设时间段内接收到邮件服务器的响应信息,则确定邮件服务器为正常状态;第二确定子模块,用于若在预设时间段内没有接收到响应信息,则确定邮件服务器崩溃不为正常状态。

进一步地,测试子模块包括:服务器测试子模块,用于通过PING命令发送测试数据包至IP地址。

进一步地,邮件发送装置还包括:记录模块,用于在初次执行检测操作时,记录执行检测操作的累计时长;邮件清空模块,用于在累计时长达到第二预设时间的情况下,清空邮件队列。

进一步地,邮件发送装置还包括:邮件删除模块,用于在将邮件及邮件对应的报警邮件发送至邮件服务器之后,将邮件信息从邮件队列中删除。

在本发明实施例中,获取发送失败或者接收失败的多个邮件及每个邮件对应的邮件信息,并将邮件和邮件对应的邮件信息存入邮件队列,然后检测邮件队列中的邮件对应的邮件服务器是否为正常状态,在检测到邮件服务器为正常状态的情况下,将邮件及邮件对应的报警邮件发送至邮件服务器,从而解决了现有技术中在邮件服务器崩溃的情况下需要手动重新发送邮件的技术问题,实现了对发送失败的邮件的自动发送。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的邮件发送方法的流程图;

图2是根据本发明实施例的一个可选的邮件发送方法的流程图;

图3是根据本发明实施例的邮件发送装置的示意图;以及

图4是根据本发明实施例的一种可选的邮件发送装置的示意图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本发明实施例进行描述的过程中出现的部分名词或术语适用于如下解释:

报警邮件:当邮件系统运行出错后,需要给用户及相关技术人员发送报警邮件,可以使用户或者技术人员对问题进行及时的排查和处理。

邮件服务器:是一个负责收发邮件的设备,用于将用户需要发送的邮件投递给收件人,或者接收其它用户发送给该用户的邮件。

实施例1

根据本发明实施例,提供了一种邮件发送方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的邮件发送方法的流程图,如图1所示,该方法包括如下步骤:

步骤S102,获取发送失败或者接收失败的多个邮件及每个邮件对应的邮件信息。

其中,邮件信息至少包括邮件的发送邮箱的配置信息和接收邮箱的配置信息,发送邮箱和接收邮箱对应于同一邮件服务器或分别对应于不同的邮件服务器。

步骤S104,根据多个邮件及对应的邮件信息建立邮件队列。

步骤S106,对邮件队列执行检测操作。

其中,检测操作包括检测邮件队列中的邮件对应的邮件服务器是否为正常状态。

步骤S108,当检测到邮件信息对应的邮件服务器为正常状态时,将邮件及邮件对应的报警邮件发送至邮件服务器。

通过上述实施例,获取发送失败或者接收失败的多个邮件及每个邮件对应的邮件信息,并将邮件和邮件对应的邮件信息存入邮件队列,然后检测邮件队列中的邮件对应的邮件服务器是否为正常状态,在检测到邮件服务器为正常状态的情况下,将邮件及对应的报警邮件发送至邮件服务器,从而解决了现有技术中在邮件服务器崩溃的情况下需要手动重新发送邮件的技术问题,实现了对发送失败的邮件的自动发送。

需要说明的是,若上述邮件信息为发送失败的邮件所产生的信息,则在邮件服务器恢复正常时,重新发送该邮件并发送报警邮件;若邮件信息为接收失败的邮件所产生的信息,则在邮件服务器恢复为正常状态时,发送邮件至邮件服务器以提示发信者重新发送,并发送报警邮件。

上述的步骤S104和步骤S106可以通过如下方式实现:建立一个为空的邮件队列,当检测到用户的邮件发送失败之后,自动将对应的邮件信息添加到邮件队列中,邮件信息可以包括发送人邮箱地址、接收人邮箱地址、邮件标题和邮件内容等信息,可以根据邮箱地址确定邮件服务器的IP地址,然后逐个检测各条邮件信息对应的邮件服务器是否崩溃,若邮件服务器崩溃了,则确定邮件服务器不为正常状态,只有在邮件服务器恢复为正常状态之后,才可以按照邮件信息重新补发邮件。

需要说明的是,上述邮件队列可以是先入先出队列(即FIFO,First Input First Output),在检测邮件信息对应的邮件服务器时,按照先入先出的预设顺序进行检测,即按照邮件信息加入到队列的时间顺序进行检测,最先检测最早被加入到队列的邮件信息所对应的邮件服务器,最后检测最晚被加入到队列的邮件信息所对应的邮件服务器。这里的邮件服务器可以是发送邮箱的邮件服务器,也可以是收件邮箱的邮件服务器。

可选的,上述邮件队列也可以采用堆栈的存储方式,在采用堆栈的存储方式时,按照后入先出的顺序进行检测,即与上述先入先出的顺序相反,最后加入队列的邮件信息所对应的邮件服务器最先被检测。

通过上述实施例中,通过实时检测邮件服务器是否完好,在服务器恢复时发送邮件,从而无需工作人员人工发送,减少了工作人员的工作量,实现了邮件的自动发送。

上述的步骤S108可以通过如下方式实现:通过系统自动检测用户发送的邮件的状态,当检测到邮件发送失败的时候,自动生成报警邮件并将报警邮件发送给指定的邮箱,以提醒用户或者邮件服务器的维护人员及时处理邮件服务器的故障。

通过上述实施例,在邮件发送失败的时候发送报警邮件,可以及时的提醒维护人员对邮件服务器进行维修。

在本发明的一个可选的实施例中,对邮件队列执行检测操作可以包括:判断与前一次执行检测操作之间的间隔时间是否达到第一预设时间;在间隔时间达到第一预设时间的情况下,按照预设顺序依次从邮件队列中读取邮件信息,其中,邮件信息还包括邮件服务器的IP地址;发送测试数据包至IP地址,其中,测试数据包用于检测邮件服务器是否为正常状态;若在预设时间段内接收到邮件服务器的响应信息,则确定邮件服务器为正常状态;若在预设时间段内没有接收到响应信息,则确定邮件服务器不为正常状态。

需要说明的是,在邮件服务器与互联网连接且能够正常发送和接收邮件时,则说明该邮件服务器正常,在邮件服务器不能发送和接收邮件时,例如邮件服务器崩溃时,则说明邮件服务器不为正常状态。

具体的,本发明的实施例可以通过如图2所示的步骤实现。

步骤S202,检测用户发送的邮件的状态。

步骤S204,若邮件发送失败,则根据该邮件生成邮件信息,并将邮件信息存入邮件列表。

可选的,邮件信息可以包括邮件的发送邮箱、接收邮箱、邮件标题以及邮件内容。

具体的,实时检测用户发送的邮件的状态,若邮件发送失败,则生成包括发送人邮箱地址、接收人邮箱地址、邮件标题和邮件内容等信息的邮件信息,并将邮件信息存入邮件队列。

可选的,本申请的邮件发送方法还可以包括:在初次执行检测操作时,记录执行检测操作的累计时长;在累计时长达到第二预设时间的情况下,清空邮件队列。

需要说明的是,可以通过计时器记录累计时长,即在初次执行检测操作时启动计时器,从计时器中读取到的时间即为累计时长。由于在一般情况,若邮件服务器崩溃(即不为正常状态)了,那么技术人员会及时地对其进行维护,若在一定时间(如上述的第二预设时间)内邮件服务器没有得到修复,则说明邮件服务器不会在短时间内得到修复,为了节省计算机的资源,因此可以暂时停止检测操作。

步骤S206,判断累计时长是否达到第二预设时间。

用户可以根据自己的需要配置“检测时长上限”(即第二预设时间),若不配置此参数,则该参数的默认值为30分钟。在累计时长达到30分钟时执行步骤S208,否则执行步骤S210。

步骤S208,将邮件队列的所有邮件信息清空。

当累计时长达到30分钟时,为了减轻电脑的工作负担,可以停止检测,将邮件队列的邮件信息清空。

通过上述实施例,在对邮件队列的检测时间达到一个固定值的时候停止检测,可以减轻电脑负担。

可选的,发送测试数据包至IP地址可以包括:通过PING命令发送测试数据包至IP地址。

步骤S210,当间隔时间达到第一预设时间时,检测邮件服务器是否崩溃。

用户可以根据自己的需要配置“检测时间间隔”(即第一预设时间),若不配置此参数,则该参数的默认值为1分钟。系统会每隔1分钟对邮件队列执行一次检测操作,这里的检测操作是指对整个邮件队列的所有邮件信息对应的邮件服务器完成一次检测。

在检测邮件服务器时,可以从邮件信息中读取邮件服务器IP地址,然后通过PING命令发送测试数据包给邮件服务器,若收到响应信息则确定邮件服务器已经恢复正常,若没有收到响应信息则说明邮件服务器还处于崩溃状态。

通过上述实施例,通过使用PING命令,可以快速的实现对邮件服务器的检测。

可选的,还可以根据发送人邮箱地址或者接收人邮箱地址来检测发送人的邮件服务器或者接收人的邮件服务器。

需要说明的是,上述累计时长可以根据检测操作执行的次数和检测时间间隔的乘积值确定,当累计时长达到检测时长上限时,可以对邮件队列进行超时处理,如停止检测或者删除队列的邮件信息。

步骤S212,若邮件服务器没有崩溃,则重新发送邮件。

在执行检测操作时,若检测到某个邮件服务器已经恢复正常,则根据邮件信息包括的发送人邮箱地址、接收人邮箱地址、邮件标题和邮件内容等信息重新发送邮件。

可选的,在将邮件及邮件对应的报警邮件发送至邮件服务器之后,该邮件发送方法还可以包括:将邮件信息从邮件队列中删除。

步骤S214,将邮件信息从邮件队列中删除。

例如系统需要在每天9点发送10份报表,若9点前发件人的邮件服务器已经崩溃,那么9点需要发送的10份报表都无法发送给用户。此时,将自动检测邮件服务器是否崩溃,在检测到邮件服务器修复后,自动将发送失败的邮件重新发送给用户。在重新发送邮件之后,将对应的邮件信息从邮件队列中删除。

通过上述实施例,可以避免因发送人无法使用电脑等原因导致无法重发。

实施例2

本发明实施例还提供了一种邮件发送装置。需要说明的是,本发明实施例的邮件发送装置可以用于执行本发明实施例所提供的邮件发送方法,本发明实施例的邮件发送方法也可以通过本发明实施例所提供的邮件发送装置来执行。

根据本发明实施例,还提供了一种邮件发送装置的装置实施例,图3是根据本发明实施例的邮件发送装置的示意图,如图3所示,该邮件发送装置可以包括:获取模块10、处理模块20、检测模块30以及发送模块40。

其中,获取模块10用于获取发送失败或者接收失败的多个邮件及每个邮件对应的邮件信息,其中,邮件信息至少包括邮件的发送邮箱的配置信息和接收邮箱的配置信息,发送邮箱和接收邮箱对应于同一邮件服务器或分别对应于不同的邮件服务器;处理模块20用于根据多个邮件及对应的邮件信息建立邮件队列;检测模块30用于对邮件队列执行检测操作,检测操作包括检测邮件队列中的邮件对应的邮件服务器是否为正常状态;发送模块40用于当检测到邮件信息对应的邮件服务器为正常状态时,将邮件及邮件对应的报警邮件发送至邮件服务器。

通过上述实施例,获取发送失败或者接收失败的多个邮件及每个邮件对应的邮件信息,并将邮件和邮件对应的邮件信息存入邮件队列,然后检测邮件队列中的邮件对应的邮件服务器是否为正常状态,在检测到邮件服务器为正常状态的情况下,将邮件及对应的报警邮件发送至邮件服务器,从而解决了现有技术中在邮件服务器崩溃的情况下需要手动重新发送邮件的技术问题,实现了对发送失败的邮件的自动发送。

需要说明的是,若邮件信息为发送失败的邮件所产生的信息,则在邮件服务器恢复正常时,重新发送该邮件并发送报警邮件;若邮件信息为接收失败的邮件所产生的信息,则在邮件服务器恢复为正常时,发送邮件至邮件服务器以提示发信者重新发送,并发送报警邮件。

在本发明上述实施例中的检测模块30可以包括:如图4所示的判断子模块301,用于判断与前一次执行检测操作之间的间隔时间是否达到第一预设时间;读取子模块303,用于在间隔时间达到第一预设时间的情况下,按照预设顺序依次从邮件队列中读取邮件信息,其中,邮件信息还可以包括邮件服务器的IP地址;测试子模块305,用于发送测试数据包至IP地址,其中,测试数据包用于检测邮件服务器是否为正常状态;第一确定子模块307,用于若在预设时间段内接收到邮件服务器的响应信息,则确定邮件服务器为正常状态;第二确定子模块309,用于若在预设时间段内没有接收到响应信息,则确定邮件服务器不为正常状态。

通过上述实施例中,通过实时检测邮件服务器是否完好,在服务器恢复时发送邮件,从而无需工作人员人工发送,实现了邮件的自动发送。

可选的,测试子模块可以包括:服务器测试子模块,用于通过PING命令发送测试数据包至IP地址。

通过上述实施例,通过使用PING命令,可以快速的实现对邮件服务器的检测。

可选的,本申请的邮件发送装置还可以包括:记录模块,用于在初次执行检测操作时,记录执行检测操作的累计时长;邮件清空模块,用于在累计时长达到第二预设时间的情况下,清空邮件队列。

通过上述实施例,在对邮件队列的检测时间达到一个固定值的时候停止检测,可以减轻电脑负担。

可选的,本申请的邮件发送装置还可以包括:邮件删除模块,用于在将邮件及邮件对应的报警邮件发送至邮件服务器之后,将邮件信息从邮件队列中删除。

通过上述实施例,在邮件重新发送之后,将对应的邮件信息从邮件队列中删除,能够避免重复检测。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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