CN114979056B - 一种电子邮件处理方法、装置、存储介质及电子设备 - Google Patents
一种电子邮件处理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114979056B CN114979056B CN202210558741.6A CN202210558741A CN114979056B CN 114979056 B CN114979056 B CN 114979056B CN 202210558741 A CN202210558741 A CN 202210558741A CN 114979056 B CN114979056 B CN 114979056B
- Authority
- CN
- China
- Prior art keywords
- sending
- message
- sent
- queue
- instant
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 29
- 230000005540 biological transmission Effects 0.000 claims description 40
- 238000000034 method Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提出一种电子邮件处理方法、装置、存储介质及电子设备,电子设备中部设有邮件发送系统,邮件发送系统包括第一服务队列和即时队列组,即时队列组包括至少两个即时服务队列,通过将第一服务队列中处于未发送状态的待发送消息推送给即时队列组中的任一空闲的即时服务队列;即时服务队列调用服务商API,以对存储的待发送消息进行发送,其中,服务商API为邮件发送接口。因为多个即时服务队列并行工作,可以提升发送效率。已经推送给即时服务队列的待发送消息不会再推送给其他的即时服务队列,避免出现重复发送。
Description
技术领域
本申请涉及数据传输领域,具体而言,涉及一种电子邮件处理方法、装置、存储介质及电子设备。
背景技术
企业为了降低运营成本往往会购买第三方邮箱服务,不需要自己运维,使用只需下载服务商提供的邮箱客户端,非常方便。但需要调用服务商的api发送邮件,比如:定时抛送报表到客户邮箱,流程审批完成自动通知下一个办理人,设备发生异常报警发送邮件通知负责人等等。
如何高效稳定的调用api发送邮件,成为了困扰本领域技术人员的难题。
发明内容
本申请的目的在于提供一种电子邮件处理方法、装置、存储介质及电子设备,以至少部分改善上述问题。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供一种电子邮件处理方法,应用于电子设备,所述电子设备中部设有邮件发送系统,所述邮件发送系统包括第一服务队列和即时队列组,所述即时队列组包括至少两个即时服务队列,所述方法包括:
将所述第一服务队列中处于未发送状态的待发送消息推送给即时队列组中的任一空闲的即时服务队列;
所述即时服务队列调用服务商API,以对存储的待发送消息进行发送,其中,所述服务商API为邮件发送接口。
第二方面,本申请实施例提供一种电子邮件处理装置,应用于电子设备,所述电子设备中部设有邮件发送系统,所述邮件发送系统包括第一服务队列和即时队列组,所述即时队列组包括至少两个即时服务队列,所述装置包括:
处理单元,用于将所述第一服务队列中处于未发送状态的待发送消息推送给即时队列组中的任一空闲的即时服务队列;
调用单元,用于所述即时服务队列调用服务商API,以对存储的待发送消息进行发送,其中,所述服务商API为邮件发送接口。
第三方面,本申请实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的方法。
第四方面,本申请实施例提供一种电子设备,所述电子设备包括:处理器和存储器,所述存储器用于存储一个或多个程序;当所述一个或多个程序被所述处理器执行时,实现上述的方法。
相对于现有技术,本申请实施例所提供的一种电子邮件处理方法、装置、存储介质及电子设备,电子设备中部设有邮件发送系统,邮件发送系统包括第一服务队列和即时队列组,即时队列组包括至少两个即时服务队列,通过将第一服务队列中处于未发送状态的待发送消息推送给即时队列组中的任一空闲的即时服务队列;即时服务队列调用服务商API,以对存储的待发送消息进行发送,其中,服务商API为邮件发送接口。因为多个即时服务队列并行工作,可以提升发送效率。已经推送给即时服务队列的待发送消息不会再推送给其他的即时服务队列,避免出现重复发送。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
图1为本申请实施例提供的电子设备的结构示意图;
图2为本申请实施例提供的电子邮件处理方法的流程示意图;
图3为本申请实施例提供的队列展示示意图;
图4为本申请实施例提供的电子邮件处理方法的流程示意图之一;
图5为本申请实施例提供的电子邮件处理方法的流程示意图之一;
图6为本申请实施例提供的电子邮件处理方法的流程示意图之一;
图7为本申请实施例提供的电子邮件处理装置的单元示意图。
图中:10-处理器;11-存储器;12-总线;13-通信接口;401-处理单元;402-调用单元。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请的描述中,需要说明的是,术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
调用服务商的api发送邮件有两种可能的实现方式,其中,一种是同步调用,另一种是异步调用。
同步调用为直接调用服务商的api,比较适合一些频率低,重要性较低的通知。原因有如下几点:同步调用的性能比较差,每次发送都需要验证身份,发一封不带附件的邮件平均需要2秒;当网络出现波动时容易导致发送失败,一旦失败后就需要人工手动处理;发送的历史记录无法查询,只能去服务商的后台查看;开发维护成本高,一旦更换服务商,所有应用都需要跟着修改;群发邮件时,一旦其中一个邮箱已失效就会发送失败,导致其他用户无法收到,如果,一个个独立发送又可能被服务商判定为垃圾邮件导致无法发送;对开发人员要求高。
异步调用先将发送请求持久化,然后推入队列,由消费者集群(处理核)发送。异步调用方式可以解决同步带来的一些问题,同时也会引入一些新的问题,比如:随着网络异常时间增加服务的压力逐渐增加;多个消费者竞争执行可能导致重复发送;维护成本增加等。
为了克服以上问题,本申请实施例提供了一种电子设备,可以是服务器设备或电脑设备。请参照图1,电子设备的结构示意图。电子设备包括处理器10、存储器11、总线12。处理器10、存储器11通过总线12连接,处理器10用于执行存储器11中存储的可执行模块,例如计算机程序。
处理器10可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,电子邮件处理方法的各步骤可以通过处理器10中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器10可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器11可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。
总线12可以是ISA(Industry Standard Architecture)总线、PCI(PeripheralComponent Interconnect)总线或EISA(Extended Industry Standard Architecture)总线等。图1中仅用一个双向箭头表示,但并不表示仅有一根总线12或一种类型的总线12。
存储器11用于存储程序,例如电子邮件处理装置对应的程序。电子邮件处理装置包括至少一个可以软件或固件(firmware)的形式存储于存储器11中或固化在电子设备的操作系统(operating system,OS)中的软件功能模块。处理器10在接收到执行指令后,执行所述程序以实现电子邮件处理方法。
可能地,本申请实施例提供的电子设备还包括通信接口13。通信接口13通过总线与处理器10连接。电子设备可以通过通信接口13与其他服务器和用户终端通信。
在一种可能的实现方式中,电子设备中部设有邮件发送系统,邮件发送系统包括第一服务队列和即时队列组,即时队列组包括至少两个即时服务队列。
应当理解的是,图1所示的结构仅为电子设备的部分的结构示意图,电子设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
本申请实施例提供的一种电子邮件处理方法,可以但不限于应用于图1所示的电子设备,具体的流程,请参考图2,电子邮件处理方法包括:S201和S202,具体阐述如下。
S201,将第一服务队列中处于未发送状态的待发送消息推送给即时队列组中的任一空闲的即时服务队列。
可选地,待发送消息可以为广播给用户群体的邮件、发送指定对象的邮件,在此不做限定。待发送消息包括收件对象和邮件主题。
可选地,可以依据先进先出的规则,将第一服务队列中处于未发送状态的待发送消息即时服务队列。因为多个即时服务队列并行工作,可以提升发送效率。
需要说明的是,第一服务队列中可以包括N条处于未发送状态的待发送消息,N大于或等于0。
即当N=0时,第一服务队列中不包括处于未发送状态的待发送消息,此时可以不用进行推送。
当N大于或等于2时,在推送时,可以根据待发送消息写入第一服务队列的时间,执行先进先出的策略,将更早写入第一服务队列的处于未发送状态的待发送消息推送给任一空闲的即时服务队列。
在一种可能的实现方式中,如图3所示,在S201之后,可以将第一服务队列中已推送给即时服务队列的待发送消息的状态修改为正在发送状态。例如,将第一服务队列中的第一待发送消息推送给即时服务队列,可以将第一待发送消息的状态修改为正在发送。
应理解,处于正在发送状态的待发送消息不会再推送给其他的即时服务队列,避免出现重复发送。
S202,即时服务队列调用服务商API,以对存储的待发送消息进行发送。
其中,服务商API为邮件发送接口。
如图3所示,在S202之后,可以将待发送消息中的邮件主题发送给对应的收件对象,收件对象包括收件人、抄送人以及密送人等。
综上所述,本申请实施例提供的一种电子邮件处理方法,应用于电子设备,电子设备中部设有邮件发送系统,邮件发送系统包括第一服务队列和即时队列组,即时队列组包括至少两个即时服务队列,通过将第一服务队列中处于未发送状态的待发送消息推送给即时队列组中的任一空闲的即时服务队列;即时服务队列调用服务商API,以对存储的待发送消息进行发送,其中,服务商API为邮件发送接口。因为多个即时服务队列并行工作,可以提升发送效率。已经推送给即时服务队列的待发送消息不会再推送给其他的即时服务队列,避免出现重复发送。
在图2的基础上,关于如何将待发送消息写入第一服务队列中,本申请实施例还提供了一种可能的实现方式中,请参考图4,电子邮件处理方法还包括:S101、S102、S103以及S104,具体阐述如下。
S101,将用户终端传输的发送请求写入第一存储单元。
可选地,第一存储单元可以作为运行时表,可以将正在处理的消息数据或记录存在第一存储单元。第一存储单元可以是存储器11中的一段空间,也可以是独立的存储装置。
S102,确定发送请求是否满足发送条件。若是,则执行S104;若否,则执行S103。
其中,发送条件为收件对象和邮件主题均不为空。
应理解,在收件对象或邮件主题中的任意一个为空时,则邮件不能正常发送;此时,执行S103。反之,则执行S104,对发送请求进行邮件分发。
需要说明的是,邮件主题可以包括邮件标题和正文。
S103,将第一存储单元中的发送请求删除。
其中,第一类型表示该发送请求不满足发送条件,为无效邮件,未进行发送。
可选地,本申请实施例还提供了第二存储单元,第二存储单元可以作为历史表,用于记录已经处理完的请求和消息。第二存储单元可以是存储器11中的一段空间,也可以是独立的存储装置。
应理解,随着时间的增加,数据库中的记录数会越来越大,数据库的性能会成为服务的瓶颈,所以需要把正在处理的记录放到运行时表,把已经处理完的记录归档到历史表。这样持久化服务一直可以保持高性能,不会因为历史数据的积累而损失性能。同时轮询服务查询未发送的记录同样可以保持高效。
S104,在用户终端传输的发送请求满足发送条件的情况下,将发送请求写入第一服务队列,并标记为未发送状态的待发送消息。
可选地,在将发送请求写入第一服务队列时,可以标记其的写入时间。
在图2的基础上,对于如何实现邮件发送,本申请实施例还提供了一种可能的实现方式,请参考图5,在S202之后,电子邮件处理方法还包括:S203、S204、S205、S206、S207、S208以及S209,具体阐述如下。
S203,确定服务商API反馈的第一类调用结果是否包含发送成功标识。若是,则执行S204;若否,则执行S205。
应理解,第一类调用结果为即时服务队列调用服务商API的反馈结果。
可选地,即时服务队列调用服务商API后会返回调用结果,调用结果中包含一个用于作为标识的编码,正常成功发送时,编码可以为250,即为发送成功标识。当邮箱地址异常后会返回一个例如为550的错误码。
应理解,当第一类调用结果包含发送成功标识时,表示发送成功,可以将对应的发送请求归档到第二存储单元中,并记录其对应的发送状态,便于后续观察,即执行S204;反之则需要分析错误原因,执行S205。
S204,即时服务队列清空其中的待发送消息,将第一服务队列中对应的待发送消息删除,将第一存储单元中对应的发送请求移动至第二存储单元,并标记为第一类成功标识。
其中,第一类成功标识包括发送成功的邮箱地址和发送失败的邮箱地址。
应理解,在第一次调用就成功时,表示待发送消息中的所有收件对象的邮箱地址均正常,所有邮箱均能收到邮件,发送失败的邮箱未空。
S205,确定第一类调用结果是否包含邮箱地址错误标识。若是,则执行S207;若否,则执行S206。
可选地,错误码可以分如下四种:
1.MessageNotAccepted;
2.SenderNotAccepted;
3.RecipientNotAccepted;
4.UnexpectedStatusCode;
其中,第三种是表示收件人拒收邮件,拒收的原因一般为:邮箱已被禁用或者邮箱不存在,即第三种可以作为邮箱地址错误标识。
当第一类调用结果包含邮箱地址错误标识时,即会停止发送邮件,一次只会返回一个无效邮箱地址,因为服务商一遇到无效地址就会立刻告诉调用方,后面其它地址不会再去尝试。但此时还不能确定其他的收件对象的邮箱地址是否正常,需要继续执行,则执行S207。
当第一类调用结果不包含发送成功标识和邮箱地址错误标识时,说明是其他错误类型,例如上述的第1、2以及4种错误码,即使删除邮箱地址,也不能克服错误原因,此时执行S206。
S206,即时服务队列清空其中的待发送消息,将第一服务队列中对应的待发送消息标记为发送失败状态。
可选地,可以同时将第一存储单元中的对应的发送请求标记为发送失败状态。
S207,将即时服务队列中的待发送消息中的错误邮箱地址删除。
其中,错误邮箱地址为邮箱地址错误标识对应的地址。
应理解,在第一类调用结果包含邮箱地址错误标识时,第一类调用结果还会包含错误邮箱地址。通过将待发送消息中的错误邮箱地址删除,使得可以完成剩余正确的邮箱地址的邮件发送。
S208,确定删除错误邮箱地址的待发送消息对应的主送人是否为空。若是,则执行S209;若否,则执行S202。
可选地,邮件本身只有一个邮箱地址,被删除后该邮件会直接被标记为无效邮件持久化到数据库,不会被补偿流程发送;或者,邮件有多个邮箱地址,需要依次从收件人,抄送人,密送人三处过滤。当收件人被过滤为空时,邮件也会直接被标为无效邮件,即使还有抄送人和密送人。
当删除错误邮箱地址的待发送消息对应的主送人不为空时,过滤后邮件不会直接被标记为失败,会继续尝试发送,因为很可能还有无效的邮箱,直至把所有无效邮箱都过滤。发送成功之后会把失败的邮箱和成功的标记的邮箱都持久化到数据库中。
当删除错误邮箱地址的待发送消息对应的主送人为空时,可以执行S209,反之,则需要继续发送,则执行S202。
S209,即时服务队列清空其中的待发送消息,将第一服务队列中对应的待发送消息删除,将第一存储单元中对应的发送请求移动至第二存储单元,并标记为无效邮件。
可选地,邮件发送系统还包括补偿队列,在图2的基础上,关于第一服务队列中标记为发送失败状态的待发送消息怎么处理,本申请实施例还提供了一种可能的实现方式,请参考图6,电子邮件处理方法还包括:S301、S302以及S303,具体阐述如下。
S301,补偿队列从第一服务队列中获取补发消息。
其中,补发消息为处于发送失败状态的消息和/或写入第一服务队列的时间超过预设时间长度且处于未发送状态的消息,补发消息的数量小于或等于预设数量。
可选地,补发消息包含两部分:发送失败的记录和服务停止未发送的记录。其中发送失败的记录有一个标记为很容易区分,因服务停止未发送的记录和生产者实时产生的记录是一样的状态。而补偿服务是定时触发,当一个请求刚好写入数据库还未发送,此刻补偿服务启动,这样就会和即时服务冲突,造成重复发送。这种情况可以在补偿服务启动时,通过生成时间过滤,获取预设时间长度(例如一分钟)前的记录,这样就不会造成冲突。
S302,补偿队列调用服务商API,以对存储的待发送消息进行发送。
S303,将第一存储单元中对应的发送请求移动至第二存储单元,并依据第二类调用结果,修改第二存储单元中的发送请求的标识。
其中,第二类调用结果为补偿队列调用服务商API的反馈结果。
可选地,补发消息的获取数量要有条数限制,如果每次获取全部可以发送的记录(失败的和未发送),当发生网络异常等情况时,记录条数会越积越多。而异常情况下,一条记录发送的时间需要20秒(默认超时时间),服务器非常容易被拖垮。所以可以把单个消费者的并发数作为每次获取的条数的依据(可以按1:1获取),即预设数量与即时服务队列的数量相同。
本申请实施例提供的电子邮件处理方法中,运行时表与历史表分离,可以让生产端高效运行,不会随着数据的量变大而降低效率,同时避免后台轮询和即时发送造成重复发送;并且群发邮件无效收件人可以自动过滤,保证邮件可以送达。
请参阅图7,图7为本申请实施例提供的一种电子邮件处理装置,可选的,该电子邮件处理装置被应用于上文所述的电子设备。
电子邮件处理装置包括:处理单元401和调用单元402。
处理单元401,用于将第一服务队列中处于未发送状态的待发送消息推送给即时队列组中的任一空闲的即时服务队列;
调用单元402,用于即时服务队列调用服务商API,以对存储的待发送消息进行发送,其中,服务商API为邮件发送接口。
可选地,处理单元401可以执行上述的S101至S104、S201、S203-S209、S301以及S302,调用单元402可以执行上述的S202和S302。
需要说明的是,本实施例所提供的电子邮件处理装置,其可以执行上述方法流程实施例所示的方法流程,以实现对应的技术效果。为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。
本申请实施例还提供了一种存储介质,该存储介质存储有计算机指令、程序,该计算机指令、程序在被读取并运行时执行上述实施例的电子邮件处理方法。该存储介质可以包括内存、闪存、寄存器或者其结合等。
下面提供一种电子设备,可以是服务器设备或电脑设备,该电子设备如图1所示,可以实现上述的电子邮件处理方法;具体的,该电子设备包括:处理器10,存储器11、总线12。处理器10可以是CPU。存储器11用于存储一个或多个程序,当一个或多个程序被处理器10执行时,执行上述实施例的电子邮件处理方法。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (8)
1.一种电子邮件处理方法,其特征在于,应用于电子设备,所述电子设备中部设有邮件发送系统,所述邮件发送系统包括第一服务队列和即时队列组,所述即时队列组包括至少两个即时服务队列,所述方法包括:
依据先进先出的规则,将所述第一服务队列中处于未发送状态的待发送消息推送给即时队列组中的任一空闲的即时服务队列;
将所述第一服务队列中已推送给所述即时服务队列的待发送消息的状态修改为正在发送状态,处于正在发送状态的待发送消息不会再推送给其他的即时服务队列;
所述即时服务队列调用服务商API,以对存储的待发送消息进行发送,将待发送消息中的邮件主题发送给对应的收件对象,收件对象包括收件人、抄送人以及密送人,其中,所述服务商API为邮件发送接口;
所述方法还包括:
将用户终端传输的发送请求写入第一存储单元;
确定所述发送请求是否满足发送条件,其中,所述发送条件为收件对象和邮件主题均不为空;
在用户终端传输的发送请求满足发送条件的情况下,将所述发送请求写入第一服务队列,并标记为未发送状态的待发送消息;
若不满足发送条件,则将所述第一存储单元中的所述发送请求删除;
在所述即时服务队列调用服务商API,以对存储的待发送消息进行发送之后,所述方法还包括:
确定所述服务商API反馈的第一类调用结果是否包含发送成功标识;
若包含发送成功标识,则所述即时服务队列清空其中的待发送消息,将所述第一服务队列中对应的待发送消息删除,将所述第一存储单元中对应的发送请求移动至第二存储单元,并标记为第一类成功标识,其中,第一类成功标识包括发送成功的邮箱地址和发送失败的邮箱地址;
若未包含发送成功标识,则确定所述第一类调用结果是否包含邮箱地址错误标识;
若未包含邮箱地址错误标识,则将所述即时服务队列清空其中的待发送消息,将所述第一服务队列中对应的待发送消息标记为发送失败状态。
2.如权利要求1所述的电子邮件处理方法,其特征在于,在定所述第一类调用结果是否包含邮箱地址错误标识之后,所述方法还包括:
若包含邮箱地址错误标识,则将所述即时服务队列中的待发送消息中的错误邮箱地址删除,其中,所述错误邮箱地址为所述邮箱地址错误标识对应的地址;
确定删除所述错误邮箱地址的待发送消息对应的主送人是否为空;
若为空,则所述即时服务队列清空其中的待发送消息,将所述第一服务队列中对应的待发送消息删除,将所述第一存储单元中对应的发送请求移动至所述第二存储单元,并标记为无效邮件;
若不为空,则重复所述即时服务队列调用服务商API,以对所述待发送消息进行发送,直至所述第一类调用结果包含发送成功标识,或者所述第一类调用结果未包含发送成功标识和邮箱地址错误标识,或者待发送消息对应的主送人为空。
3.如权利要求1所述的电子邮件处理方法,其特征在于,所述邮件发送系统还包括补偿队列,所述方法还包括:
所述补偿队列从所述第一服务队列中获取补发消息,其中,所述补发消息为处于所述发送失败状态的消息和/或写入所述第一服务队列的时间超过预设时间长度且处于未发送状态的消息,所述补发消息的数量小于或等于预设数量;
所述补偿队列调用服务商API,以对存储的待发送消息进行发送。
4.如权利要求3所述的电子邮件处理方法,其特征在于,所述预设数量与即时服务队列的数量相同。
5.如权利要求3所述的电子邮件处理方法,其特征在于,在所述补偿队列调用服务商API,以对存储的待发送消息进行发送之后,所述方法还包括:
将所述第一存储单元中对应的发送请求移动至所述第二存储单元,并依据第二类调用结果,修改所述第二存储单元中的发送请求的标识,其中,所述第二类调用结果为所述补偿队列调用服务商API的反馈结果。
6.一种电子邮件处理装置,其特征在于,应用于电子设备,所述电子设备中部设有邮件发送系统,所述邮件发送系统包括第一服务队列和即时队列组,所述即时队列组包括至少两个即时服务队列,所述装置包括:
处理单元,用于依据先进先出的规则,将所述第一服务队列中处于未发送状态的待发送消息推送给即时队列组中的任一空闲的即时服务队列;
所述电子邮件处理装置用于将所述第一服务队列中已推送给所述即时服务队列的待发送消息的状态修改为正在发送状态,处于正在发送状态的待发送消息不会再推送给其他的即时服务队列;
调用单元,用于所述即时服务队列调用服务商API,以对存储的待发送消息进行发送,将待发送消息中的邮件主题发送给对应的收件对象,收件对象包括收件人、抄送人以及密送人,其中,所述服务商API为邮件发送接口;
所述处理单元还用于将用户终端传输的发送请求写入第一存储单元;确定所述发送请求是否满足发送条件,其中,所述发送条件为收件对象和邮件主题均不为空;在用户终端传输的发送请求满足发送条件的情况下,将所述发送请求写入第一服务队列,并标记为未发送状态的待发送消息;若不满足发送条件,则将所述第一存储单元中的所述发送请求删除;
所述处理单元还用于在所述即时服务队列调用服务商API,以对存储的待发送消息进行发送之后,确定所述服务商API反馈的第一类调用结果是否包含发送成功标识;若包含发送成功标识,则所述即时服务队列清空其中的待发送消息,将所述第一服务队列中对应的待发送消息删除,将所述第一存储单元中对应的发送请求移动至第二存储单元,并标记为第一类成功标识,其中,第一类成功标识包括发送成功的邮箱地址和发送失败的邮箱地址;若未包含发送成功标识,则确定所述第一类调用结果是否包含邮箱地址错误标识;若未包含邮箱地址错误标识,则将所述即时服务队列清空其中的待发送消息,将所述第一服务队列中对应的待发送消息标记为发送失败状态。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-5中任一项所述的方法。
8.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器用于存储一个或多个程序;当所述一个或多个程序被所述处理器执行时,实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210558741.6A CN114979056B (zh) | 2022-05-20 | 2022-05-20 | 一种电子邮件处理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210558741.6A CN114979056B (zh) | 2022-05-20 | 2022-05-20 | 一种电子邮件处理方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114979056A CN114979056A (zh) | 2022-08-30 |
CN114979056B true CN114979056B (zh) | 2023-12-29 |
Family
ID=82984713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210558741.6A Active CN114979056B (zh) | 2022-05-20 | 2022-05-20 | 一种电子邮件处理方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114979056B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005005990A (ja) * | 2003-06-11 | 2005-01-06 | Nec Corp | メール転送制御システム,方法およびプログラム |
CN106445705A (zh) * | 2016-10-08 | 2017-02-22 | 武汉烽火众智数字技术有限责任公司 | 基于RabbitMQ和Socket.io的平台级联方法和系统 |
CN107613529A (zh) * | 2017-07-31 | 2018-01-19 | 上海华为技术有限公司 | 消息处理方法以及基站 |
CN111338825A (zh) * | 2020-02-27 | 2020-06-26 | 上海百秋电子商务有限公司 | 一种电商接口对接平台 |
CN111460241A (zh) * | 2020-04-26 | 2020-07-28 | 甬矽电子(宁波)股份有限公司 | 一种数据查询方法、装置、电子设备及存储介质 |
CN112737926A (zh) * | 2020-12-30 | 2021-04-30 | 平安证券股份有限公司 | 邮件发送方法、装置、电子设备及存储介质 |
CN113395269A (zh) * | 2021-06-04 | 2021-09-14 | 上海浦东发展银行股份有限公司 | 一种数据交互方法、装置 |
CN114020689A (zh) * | 2021-11-10 | 2022-02-08 | 建信金融科技有限责任公司 | 数据处理方法、数据处理装置、电子设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7596502B2 (en) * | 2006-07-14 | 2009-09-29 | Agent Shield, Inc. | System and method for replacing contact information on a website |
US7895330B2 (en) * | 2006-10-20 | 2011-02-22 | International Business Machines Corporation | Queuing of instant messaging requests |
US11063897B2 (en) * | 2019-03-01 | 2021-07-13 | Cdw Llc | Method and system for analyzing electronic communications and customer information to recognize and mitigate message-based attacks |
-
2022
- 2022-05-20 CN CN202210558741.6A patent/CN114979056B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005005990A (ja) * | 2003-06-11 | 2005-01-06 | Nec Corp | メール転送制御システム,方法およびプログラム |
CN106445705A (zh) * | 2016-10-08 | 2017-02-22 | 武汉烽火众智数字技术有限责任公司 | 基于RabbitMQ和Socket.io的平台级联方法和系统 |
CN107613529A (zh) * | 2017-07-31 | 2018-01-19 | 上海华为技术有限公司 | 消息处理方法以及基站 |
CN111338825A (zh) * | 2020-02-27 | 2020-06-26 | 上海百秋电子商务有限公司 | 一种电商接口对接平台 |
CN111460241A (zh) * | 2020-04-26 | 2020-07-28 | 甬矽电子(宁波)股份有限公司 | 一种数据查询方法、装置、电子设备及存储介质 |
CN112737926A (zh) * | 2020-12-30 | 2021-04-30 | 平安证券股份有限公司 | 邮件发送方法、装置、电子设备及存储介质 |
CN113395269A (zh) * | 2021-06-04 | 2021-09-14 | 上海浦东发展银行股份有限公司 | 一种数据交互方法、装置 |
CN114020689A (zh) * | 2021-11-10 | 2022-02-08 | 建信金融科技有限责任公司 | 数据处理方法、数据处理装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于动态权值优先级队列的移动消息推送策略;蒋溢;聂路雨;;计算机工程与设计(第10期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114979056A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8135779B2 (en) | Method, system, apparatus, and software product for filtering out spam more efficiently | |
EP3061215B1 (en) | Conditional delivery of electronic messages | |
US8412997B2 (en) | Method and system for message retransmission and intersystem message delivery | |
US20060259558A1 (en) | Method and program for handling spam emails | |
US20090049141A1 (en) | Tracking delivered e-mail | |
CN111030784A (zh) | 一种信息同步方法和装置 | |
WO2008116419A1 (fr) | Système de suivi de courrier électronique et procédé et serveur apparentés | |
US20090037537A1 (en) | Tracking Electronic Mail History | |
JP3807857B2 (ja) | 電子メールシステムおよび電子メールサーバ | |
US7908514B2 (en) | Minimizing data loss in asynchronous replication solution using distributed redundancy | |
JP4077336B2 (ja) | 異常検出方法、異常検出プログラム、サーバ、コンピュータ | |
US8095604B2 (en) | Automatically modifying distributed communications | |
US8111819B2 (en) | Message server and method for notification of a user about the delivery of an electronic message | |
CN111416823A (zh) | 一种数据传输方法和装置 | |
WO2022033586A1 (zh) | 一种消息发送方法及装置 | |
CN106936688B (zh) | 通知发送方法和装置 | |
CN114979056B (zh) | 一种电子邮件处理方法、装置、存储介质及电子设备 | |
KR20120027274A (ko) | 사용자 정의 에이전트를 이용한 메시지 전달 | |
US10356034B2 (en) | Electronically processing bounceback messages from communications networks | |
CN111049730A (zh) | RabbitMQ消息重传及消费方幂等性解决方法 | |
JP5427497B2 (ja) | メールゲートウェイ | |
CN112416598A (zh) | 消息处理方法、装置、电子设备及存储介质 | |
US7606935B1 (en) | Systems and methods of automatic retransmission of electronic mail | |
CN108259316B (zh) | 电子邮件处理方法及装置 | |
JP5301499B2 (ja) | 転送装置、転送方法及び転送プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |