[go: up one dir, main page]

CN112134790B - 基于优先级的邮件发送方法、装置、设备及存储介质 - Google Patents

基于优先级的邮件发送方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112134790B
CN112134790B CN202011040403.0A CN202011040403A CN112134790B CN 112134790 B CN112134790 B CN 112134790B CN 202011040403 A CN202011040403 A CN 202011040403A CN 112134790 B CN112134790 B CN 112134790B
Authority
CN
China
Prior art keywords
mail
sending
priority
request
mails
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
Application number
CN202011040403.0A
Other languages
English (en)
Other versions
CN112134790A (zh
Inventor
丁志明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Pension Insurance Corp
Original Assignee
Ping An Pension Insurance Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Pension Insurance Corp filed Critical Ping An Pension Insurance Corp
Priority to CN202011040403.0A priority Critical patent/CN112134790B/zh
Publication of CN112134790A publication Critical patent/CN112134790A/zh
Application granted granted Critical
Publication of CN112134790B publication Critical patent/CN112134790B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/214Monitoring or handling of messages using selective forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/23Reliability checks, e.g. acknowledgments or fault reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/42Mailbox-related aspects, e.g. synchronisation of mailboxes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种基于优先级的邮件发送方法,包括:获取预设时间段内的多种类型的邮件的发送成功时间以及阅读回执时间;根据所述发送成功时间、阅读回执时间以及预设的优先级算法计算每种类型的邮件的优先级;获取当前时间段内的待发送邮件,并根据所述待发送邮件生成每个邮件的邮件发送请求,其中,所述待发送邮件包括至少一个邮件,所述邮件发送请求包括邮件对应的优先级;将所述邮件发送请求缓存在请求队列中,根据所述邮件发送请求的优先级对所述请求队列中的邮件发送请求进行排序;从所述请求队列中依次读取邮件发送请求,对所述邮件发送请求进行解析,根据解析后获得的邮件数据进行邮件发送。能够有效解决邮件的发送问题。

Description

基于优先级的邮件发送方法、装置、设备及存储介质
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种基于优先级的邮件发送方法、装置、设备及存储介质。
背景技术
现有邮箱的邮件功能在发送邮件时,是对所有待发送的邮件随机排序发送,或者按照邮件任务的生成时间排序,不能有效体现出邮件任务的紧急程度。在系统资源比较充足,待发送邮件量不是很大的情况下,邮件能够在可容忍的时效内发出,矛盾不是很突出;而一旦由于系统维护或发版本停服务,或者一些邮件任务比较耗时,导致邮件任务积压,则会影响一些对于时效要求高的邮件无法及时发出。
发明内容
有鉴于此,本发明实施例的目的是提供一种基于优先级的邮件发送方法、装置、设备及存储介质,能够有效解决邮件的发送问题。
为实现上述目的,本发明实施例提供了一种基于优先级的邮件发送方法,包括:
获取预设时间段内的多种类型的邮件的发送成功时间以及阅读回执时间;
根据所述发送成功时间、阅读回执时间以及预设的优先级算法计算每种类型的邮件的优先级;
获取当前时间段内的待发送邮件,并根据所述待发送邮件生成每个邮件的邮件发送请求,其中,所述待发送邮件包括至少一个邮件,所述邮件发送请求包括邮件对应的优先级;
将所述邮件发送请求缓存在请求队列中,根据所述邮件发送请求的优先级对所述请求队列中的邮件发送请求进行排序;
从所述请求队列中依次读取邮件发送请求,对所述邮件发送请求进行解析,根据解析后获得的邮件数据进行邮件发送。
进一步地,所述获取预设时间段内的多种类型的邮件的发送成功时间以及阅读回执时间之前,包括:
监控所述多种类型的邮件;
建立定时任务记录多种类型的邮件的发送成功时间以及阅读回执时间。
进一步地,所述将所述邮件发送请求缓存在请求队列中,根据所述邮件发送请求的优先级对所述请求队列中的邮件发送请求进行排序包括:
根据邮件发送请求的优先级和缓存时间对所述请求队列中的邮件发送请求进行排序;其中,
对于优先级不同的邮件发送请求,优先级低的邮件发送请求排在优先级高的邮件发送请求的前面;
对于优先级相同的邮件发送请求,缓存时间早的邮件发送请求排在缓存时间晚的邮件发送请求的前面。
进一步地,所述从所述请求队列中依次读取邮件发送请求,对所述邮件发送请求进行解析,根据解析后获得的邮件数据进行邮件发送包括:
创建邮件发送线程;
根据所述邮件发送线程判断上一次读取邮件发送请求的位置是否为所述请求队列的最末一位,如果是,则返回到所述请求队列的首位进行邮件发送请求的读取,如果不是,则从上一次读取位置的下一位开始邮件发送请求的读取;
基于所述邮件发送线程对所述邮件发送请求进行解析,根据解析后获得的邮件数据调用邮件服务器的应用程序编程接口进行邮件发送。
进一步地,所述从所述请求队列中依次读取邮件发送请求,对所述邮件发送请求进行解析,根据解析后获得的邮件数据进行邮件发送之后,包括:
通过所述邮件发送线程判断所述邮件是否发送成功;
如果发送成功,则从所述请求队列中删除该邮件对应的邮件发送请求;
如果发送失败,则从所述请求队列中删除该邮件对应的邮件发送请求,再将该邮件发送请求重新缓存在所述请求队列中并进行排序。
进一步地,所述方法还包括:
当下个时间段进行邮件发送时,获取所述当前时间段的未发送邮件与下个时间段内的新增发送邮件;
确定所述新增发送邮件的优先级,将所述新增邮件与所述未发送邮件对应的发送请求根据优先级重新在所述请求队列中进行排序。
进一步地,所述方法还包括:
将所述邮件发送请求及所述邮件发送请求中的至少一个邮件及邮件对应的优先级缓存至区块链中。
为实现上述目的,本发明实施例提供了一种基于优先级的邮件发送装置,包括:
获取模块,用于获取预设时间段内的多种类型的邮件的发送成功时间以及阅读回执时间;
计算模块,用于根据所述发送成功时间、阅读回执时间以及预设的优先级算法计算每种类型的邮件的优先级;
生成模块,用于获取当前时间段内的待发送邮件,并根据所述待发送邮件生成每个邮件的邮件发送请求,其中,所述待发送邮件包括至少一个邮件,所述邮件发送请求包括邮件对应的优先级;
排序模块,用于将所述邮件发送请求缓存在请求队列中,根据所述邮件发送请求的优先级对所述请求队列中的邮件发送请求进行排序;
解析发送模块,用于从所述请求队列中依次读取邮件发送请求,对所述邮件发送请求进行解析,根据解析后获得的邮件数据进行邮件发送。
进一步地,所述排序模块进一步用于:
根据邮件发送请求的优先级和缓存时间对所述请求队列中的邮件发送请求进行排序:其中,
对于优先级不同的邮件发送请求,优先级低的邮件发送请求排在优先级高的邮件发送请求的前面;
对于优先级相同的邮件发送请求,缓存时间早的邮件发送请求排在缓存时间晚的邮件发送请求的前面。
为实现上述目的,本发明实施例提供了一种计算机设备,所述计算机设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的基于优先级的邮件发送方法的步骤。
为实现上述目的,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的基于优先级的邮件发送方法的步骤。
本发明实施例提供的基于优先级的邮件发送方法、装置、设备及存储介质,通过根据邮件的发送成功时间以及阅读回执时间确定邮件的优先级,再将邮件缓存在队列中,按优先级从缓存队列中读取邮件发送请求并进行邮件发送,能够保障重要邮件及时、可靠地送达。以有效地根据收件人对邮件的重视程度,来反映邮件实际的紧急程度,从而达到了在邮件积压情况下,重要邮件能够及时的发出来,能够在一定程度上解决时效性的问题。
附图说明
图1为本发明基于优先级的邮件发送方法实施例一的流程图。
图2为本发明实施例一中步骤S110的流程图。
图3为本发明实施例一中步骤S160的流程图。
图4为本发明实施例一中步骤S180的流程图。
图5为本发明实施例一中步骤S190的流程图。
图6为本发明基于优先级的邮件发送装置实施例二的程序模块示意图。
图7为本发明计算机设备实施例三的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参阅图1,示出了本发明实施例一之基于优先级的邮件发送方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备2为执行主体进行示例性描述。具体如下。
步骤S100,获取预设时间段内的多种类型的邮件的发送成功时间以及阅读回执时间。
具体地,监控预设时间段内每封邮件发送后的发送成功时间以及阅读回执时间,并进行记录。预先建立定时任务,每天定时记录每天发送的邮件的发送成功时间以及阅读回执时间。在获取邮件的发送成功时间以及阅读回执时间之前,对邮件的进度进监控,邮件进度监控分为邮件接收监控和邮件发送监控。邮件接收监控:是指用户接收邮件的时候,抢先截获用户接收的邮件进行查杀毒,并记录发送成功的时间,生成监控报告。邮件接收监控不需要对用户的邮件程序做出任何修改,监控用户打开邮件进行阅读的时间,或者从打开邮件到发送阅读回执的时间。邮件接收监控只支持POP3协议,不能监控IMAP,MAPI和通过WEB接收的邮件。电子邮件类型其实是电子邮件账户类型,而这与相应电子邮件服务器所支持的邮件收发协议有关。比如说QQ邮箱,它所支持的账户类型就有POP3/IMAP/SMTP/Exchange等。
邮件发送监控还有包括以下功能:支持所有使用SMTP协议的邮件客户端。对于发送的邮件进行病毒扫描,若发现邮件带毒则禁止邮件发送,在用户清除病毒后才允许发送,防止病毒传播。邮件发送监控只支持SMTP协议,不支持MAPI和通过Web发送的邮件。
示例性地,参阅图2,所述步骤S100之前,包括步骤S110:
步骤S111,监控所述多种类型的邮件。
具体地,通过异步任务,每天定时监控邮件接收到的商务或者生活等相关的邮件。
步骤S112建立定时任务记录多种类型的邮件的发送成功时间以及阅读回执时间。
具体地,设置每天进行邮件的发送成功时间以及阅读回执时间收集,以便于进行优先级的更新。
步骤S120,根据所述发送成功时间、阅读回执时间以及预设的优先级算法计算每种类型的邮件的优先级。
具体地,根据发送时间和阅读回执时间,得到每一封邮件的处理时效,作为计算优先级的关键基础数据;根据优先级算法计算得到各个邮件类型的优先级。优先级算法的计算公式如下:
W(A)=(P(A))/(P(A)+P(B)+…+P(N));
P(A)=(V1+V2+…Vn)/n;
T=T2-T1;
其中,A、B、N等为邮件的代号;W(A)表示:邮件的优先级;P(A)表示:邮件平均处理时效;V表示:邮件单次处理时效;T1表示:邮件单次发送成功时间表示;T2:邮件单次发送后阅读回执时间;T表示邮件的处理时效;n为正整数。
示例性地,邮件的优先级还可以根据邮件内容的重要性、紧急程度进行优先级的划分,越重要的邮件优先级越高,越紧急的邮件优先级越高。比如,服务器宕机的邮件的优先级设置为高,物理机CPU负载超过90%的邮件的优先级设置为中,物理机CPU负载超过85%的邮件的优先级设置为低。
示例性地,建立异步任务,每天基于最新的数据刷新一次邮件优先级,动态调整的邮件的发送机制,在某一类型的邮件时效性发生变化后,通过样本的积累,可逐步自动调整优先级,保证了优先级最终的准确性。异步任务的建立为:可以在本机或者其它服务器甚至服务器集群预先建立一些任务进程处理繁重的业务,任务进程数可以开多一些,例如cpu的10倍,然后利用AsyncTcpConnection将数据异步发送给这些任务进程异步处理,异步得到处理结果。
步骤S140,获取当前时间段内的待发送邮件,并根据所述待发送邮件生成每个邮件的邮件发送请求,其中,所述待发送邮件包括至少一个邮件,所述邮件发送请求包括邮件对应的优先级。
具体地,根据当前时间段内要进行发送的邮件的以及用户对邮件的发送操作生成邮件发送请求,邮件发送请求可以包括以下信息的一种或多种:请求标识、接收者地址、发送者地址、邮件主题、邮件内容、邮件的优先级;邮件的优先级可以是:高、中或低,根据邮件的优先级的数值进行设置,例如大于某值为高。
步骤S160,将所述邮件发送请求缓存在请求队列中,根据所述邮件发送请求的优先级对所述请求队列中的邮件发送请求进行排序。
具体地,根据邮件发送请求发送邮件时,根据最新的优先级确定发送顺序,优先级数值低的优先发送。最新的优先级可以通过建立异步任务,每天基于最新的接收的邮件与该邮件的发送成功时间以及阅读回执时间刷新一次邮件优先级。
示例性地,参阅图3,所述步骤S160具体包括:
步骤S161,根据邮件发送请求的优先级和缓存时间对所述请求队列中的邮件发送请求进行排序。
步骤S162,其中,对于优先级不同的邮件发送请求,优先级低的邮件发送请求排在优先级高的邮件发送请求的前面。
步骤S163,对于优先级相同的邮件发送请求,缓存时间早的邮件发送请求排在缓存时间晚的邮件发送请求的前面。
具体地,示例如下:比如,请求队列中有5个邮件发送请求,分别是:1号邮件发送请求(优先级高)、2号邮件发送请求(优先级高)、3号邮件发送请求(优先级中)、4号邮件发送请求(优先级中)、5号邮件发送请求(优先级低)。
第一次轮询请求队列时,读取5号邮件发送请求并进行邮件发送,读取4号邮件发送请求并进行邮件发送;在读取1号邮件发送请求之前,判断出5号邮件发送请求对应的邮件发送成功,因此,从请求队列中删除5号邮件发送请求;然后读取1号邮件发送请求并进行邮件发送;在读取2号邮件发送请求之前,判断出4号邮件发送请求发送失败,因此,从请求队列中删除4号邮件发送请求,重新将4号邮件发送请求缓存在请求队列中,由于重新缓存后的4号邮件发送请求,优先级仍然是中的,因此,重新缓存后的4号邮件发送请求排在2号邮件发送请求之前,然后,比较重新缓存后的4号邮件发送请求与同等优先级的3号邮件发送请求的缓存时间的早晚,重新缓存后的4号邮件发送请求的缓存时间晚于3号邮件发送请求,因此,将重新缓存后的4号邮件发送请求排序在3号邮件发送请求之后,该重新缓存后的4号邮件发送请求可以在第二次轮询请求队列时被读取并进行发送,因此提高了邮件发送的可靠性。
步骤S180,从所述请求队列中依次读取邮件发送请求,对所述邮件发送请求进行解析,根据解析后获得的邮件数据进行邮件发送。
具体地,读取邮件发送请求的邮件优先级,根据优先级顺序发送邮件,若优先级相同,可参考缓存时间等因素。
示例性地,参阅图4,所述步骤S180具体包括:
步骤S181,创建邮件发送线程。
具体地,创建邮件发送线程对邮件进行发送控制,一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务,邮件发送是单线程任务。
步骤S182,根据所述邮件发送线程判断上一次读取邮件发送请求的位置是否为所述请求队列的最末一位,如果是,则返回到所述请求队列的首位进行邮件发送请求的读取,如果不是,则从上一次读取位置的下一位开始邮件发送请求的读取。
具体地,根据上一次邮件发送请求在请求队列中位置,判断读取的邮件发送请求,若当前请求列队中读取完成,则去读重新加入的邮件发送请求。
步骤S183,基于所述邮件发送线程对所述邮件发送请求进行解析,根据解析后获得的邮件数据调用邮件服务器的应用程序编程接口进行邮件发送。
具体地,解析邮件发送请求得到收件人的邮箱地址,进而将邮件通过邮件服务器的应用程序编程接口API(Application Programming Interface)进行邮件发送。
示例性地,参阅图5,所述步骤S180之后,包括步骤S190:
步骤S191,通过所述邮件发送线程判断所述邮件是否发送成功。
步骤S192,如果发送成功,则从所述请求队列中删除该邮件对应的邮件发送请求。
步骤S193,如果发送失败,则从所述请求队列中删除该邮件对应的邮件发送请求,再将该邮件发送请求重新缓存在所述请求队列中并进行排序。
具体地,邮件发送时,后台运行的邮件监控进程;所述邮件监控进程监控邮件发送线程的运行情况,如果检测到邮件发送线程运行异常,则重启该邮件发送线程;所述邮件监控进程还定时备份所述请求队列中的数据,如果检测到所述请求队列数据丢失,则根据备份数据自动恢复所述请求队列;其中,邮件发送线程运行异常,比如:邮件发送线程由于某些原因或者错误,导致自动销毁或中止(不正常工作)。
示例性地,所述方法还包括:
当下个时间段进行邮件发送时,获取所述当前时间段的未发送邮件与下个时间段内的新增发送邮件;确定所述新增发送邮件的优先级,将所述新增邮件与所述未发送邮件对应的发送请求根据优先级重新在所述请求队列中进行排序。
具体地,当进行下个时间段的邮件发送时,将当前时间段内未发送的邮件与下个时间段的新增邮件分别对应的发送请求在请求队列中进行重新排序,以使下个时间段内的紧急邮件能够优先发送。
示例性地,所述方法还包括:
将所述邮件发送请求及所述邮件发送请求中的至少一个邮件及邮件对应的优先级缓存至区块链中。
具体地,将邮件发送请求上传至区块链可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得该邮件发送请求,以便查证邮件及邮件对应的优先级是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
实施例二
请继续参阅图6,示出了本发明基于优先级的邮件发送装置实施例二的程序模块示意图。在本实施例中,基于优先级的邮件发送装置20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述基于优先级的邮件发送方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述基于优先级的邮件发送装置20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
获取模块200,用于获取预设时间段内的多种类型的邮件的发送成功时间以及阅读回执时间。
具体地,监控预设时间段内每封邮件发送后的发送成功时间以及阅读回执时间,并进行记录。预先建立定时任务,每天定时记录每天发送的邮件的发送成功时间以及阅读回执时间。在获取邮件的发送成功时间以及阅读回执时间之前,对邮件的进度进监控,邮件进度监控分为邮件接收监控和邮件发送监控。邮件接收监控:是指用户接收邮件的时候,抢先截获用户接收的邮件进行查杀毒,并记录发送成功的时间,生成监控报告。邮件接收监控不需要对用户的邮件程序做出任何修改,监控用户打开邮件进行阅读的时间,或者从打开邮件到发送阅读回执的时间。邮件接收监控只支持POP3协议,不能监控IMAP,MAPI和通过WEB接收的邮件。电子邮件类型其实是电子邮件的账户类型,而这与相应电子邮件服务器所支持的邮件收发协议有关。比如说QQ邮箱,它所支持的账户类型就有POP3/IMAP/SMTP/Exchange等。
计算模块202,用于根据所述发送成功时间、阅读回执时间以及预设的优先级算法计算每种类型的邮件的优先级。
具体地,根据发送时间和阅读回执时间,得到每一封邮件的处理时效,作为计算优先级的关键基础数据;根据优先级算法计算得到各个邮件类型的优先级。优先级算法的计算公式如下:
W(A)=(P(A))/(P(A)+P(B)+…+P(N));
P(A)=(V1+V2+…Vn)/n;
T=T2-T1;
其中,A、B、N等为邮件的代号;W(A)表示:邮件的优先级;P(A)表示:邮件平均处理时效;V表示:邮件单次处理时效;T1表示:邮件单次发送成功时间表示;T2:邮件单次发送后阅读回执时间;T表示邮件的处理时效;n为正整数。
生成模块204,用于获取当前时间段内的待发送邮件,并根据所述待发送邮件生成每个邮件的邮件发送请求,其中,所述待发送邮件包括至少一个邮件,所述邮件发送请求包括邮件对应的优先级。
具体地,根据当前时间段内要进行发送的邮件的以及用户对邮件的发送操作生成邮件发送请求,邮件发送请求可以包括以下信息的一种或多种:请求标识、接收者地址、发送者地址、邮件主题、邮件内容、邮件的优先级;邮件的优先级可以是:高、中或低,根据邮件的优先级的数值进行设置,例如大于某值为高。
排序模块206,用于将所述邮件发送请求缓存在请求队列中,根据所述邮件发送请求的优先级对所述请求队列中的邮件发送请求进行排序。
具体地,根据邮件发送请求发送邮件时,根据最新的优先级确定发送顺序,优先级数值低的优先发送。最新的优先级可以通过建立异步任务,每天基于最新的接收的邮件与该邮件的发送成功时间以及阅读回执时间刷新一次邮件优先级。
示例性地,所述排序模块206具体用于:
根据邮件发送请求的优先级和缓存时间对所述请求队列中的邮件发送请求进行排序。
其中,对于优先级不同的邮件发送请求,优先级低的邮件发送请求排在优先级高的邮件发送请求的前面。
对于优先级相同的邮件发送请求,缓存时间早的邮件发送请求排在缓存时间晚的邮件发送请求的前面。
具体地,示例如下:比如,请求队列中有5个邮件发送请求,分别是:1号邮件发送请求(优先级高)、2号邮件发送请求(优先级高)、3号邮件发送请求(优先级中)、4号邮件发送请求(优先级中)、5号邮件发送请求(优先级低)。
第一次轮询请求队列时,读取5号邮件发送请求并进行邮件发送,读取4号邮件发送请求并进行邮件发送;在读取1号邮件发送请求之前,判断出5号邮件发送请求对应的邮件发送成功,因此,从请求队列中删除5号邮件发送请求;然后读取1号邮件发送请求并进行邮件发送;在读取2号邮件发送请求之前,判断出4号邮件发送请求发送失败,因此,从请求队列中删除4号邮件发送请求,重新将4号邮件发送请求缓存在请求队列中,由于重新缓存后的4号邮件发送请求,优先级仍然是中的,因此,重新缓存后的4号邮件发送请求排在2号邮件发送请求之前,然后,比较重新缓存后的4号邮件发送请求与同等优先级的3号邮件发送请求的缓存时间的早晚,重新缓存后的4号邮件发送请求的缓存时间晚于3号邮件发送请求,因此,将重新缓存后的4号邮件发送请求排序在3号邮件发送请求之后,该重新缓存后的4号邮件发送请求可以在第二次轮询请求队列时被读取并进行发送,因此提高了邮件发送的可靠性。
解析发送模块208,用于从所述请求队列中依次读取邮件发送请求,对所述邮件发送请求进行解析,根据解析后获得的邮件数据进行邮件发送。
具体地,读取邮件发送请求的邮件优先级,根据优先级顺序发送邮件,若优先级相同,可参考缓存时间等因素。
示例性地,所述解析发送模块208具体用于:
创建邮件发送线程。
具体地,创建邮件发送线程对邮件进行发送控制,一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务,邮件发送是单线程任务。
根据所述邮件发送线程判断上一次读取邮件发送请求的位置是否为所述请求队列的最末一位,如果是,则返回到所述请求队列的首位进行邮件发送请求的读取,如果不是,则从上一次读取位置的下一位开始邮件发送请求的读取。
具体地,根据上一次邮件发送请求在请求队列中位置,判断读取的邮件发送请求,若当前请求列队中读取完成,则去读重新加入的邮件发送请求。
基于所述邮件发送线程对所述邮件发送请求进行解析,根据解析后获得的邮件数据调用邮件服务器的应用程序编程接口进行邮件发送。
具体地,解析邮件发送请求得到收件人的邮箱地址,进而将邮件通过邮件服务器的应用程序编程接口API(Application Programming Interface)进行邮件发送。
实施例三
参阅图7,是本发明实施例三之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图7所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及基于优先级的邮件发送装置20。其中:
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如实施例二的基于优先级的邮件发送装置20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行基于优先级的邮件发送装置20,以实现实施例一的基于优先级的邮件发送方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述服务器2与其他电子系统之间建立通信连接。例如,所述网络接口23用于通过网络将所述服务器2与外部终端相连,在所述服务器2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。需要指出的是,图7仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述基于优先级的邮件发送装置20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图6示出了所述实现基于优先级的邮件发送装置20实施例二的程序模块示意图,该实施例中,所述基于优先级的邮件发送装置20可以被划分为获取模块200、计算模块202、生成模块204、排序模块206以及解析发送模块208。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述基于优先级的邮件发送装置20在所述计算机设备2中的执行过程。所述程序模块200-208的具体功能在实施例二中已有详细描述,在此不再赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储计算机程序,被处理器执行时实现实施例一的基于优先级的邮件发送方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种基于优先级的邮件发送方法,其特征在于,包括:
监控多种类型的邮件;
建立定时任务记录多种类型的邮件的发送成功时间以及阅读回执时间;
获取预设时间段内的多种类型的邮件的发送成功时间以及阅读回执时间;
根据所述发送成功时间、阅读回执时间以及预设的优先级算法计算每种类型的邮件的优先级,定期基于最新的数据刷新邮件优先级;
获取当前时间段内的待发送邮件,并根据所述待发送邮件生成每个邮件的邮件发送请求,其中,所述待发送邮件包括至少一个邮件,所述邮件发送请求包括邮件对应的优先级;
将所述邮件发送请求缓存在请求队列中,根据所述邮件发送请求的优先级对所述请求队列中的邮件发送请求进行排序;
从所述请求队列中依次读取邮件发送请求,对所述邮件发送请求进行解析,根据解析后获得的邮件数据进行邮件发送。
2.根据权利要求1所述的基于优先级的邮件发送方法,其特征在于,所述将所述邮件发送请求缓存在请求队列中,根据所述邮件发送请求的优先级对所述请求队列中的邮件发送请求进行排序包括:
根据邮件发送请求的优先级和缓存时间对所述请求队列中的邮件发送请求进行排序;其中,
对于优先级不同的邮件发送请求,优先级低的邮件发送请求排在优先级高的邮件发送请求的前面;
对于优先级相同的邮件发送请求,缓存时间早的邮件发送请求排在缓存时间晚的邮件发送请求的前面。
3.根据权利要求1所述的基于优先级的邮件发送方法,其特征在于,所述从所述请求队列中依次读取邮件发送请求,对所述邮件发送请求进行解析,根据解析后获得的邮件数据进行邮件发送包括:
创建邮件发送线程;
根据所述邮件发送线程判断上一次读取邮件发送请求的位置是否为所述请求队列的最末一位,如果是,则返回到所述请求队列的首位进行邮件发送请求的读取,如果不是,则从上一次读取位置的下一位开始邮件发送请求的读取;
基于所述邮件发送线程对所述邮件发送请求进行解析,根据解析后获得的邮件数据调用邮件服务器的应用程序编程接口进行邮件发送。
4.根据权利要求3所述的基于优先级的邮件发送方法,其特征在于,所述从所述请求队列中依次读取邮件发送请求,对所述邮件发送请求进行解析,根据解析后获得的邮件数据进行邮件发送之后,包括:
通过所述邮件发送线程判断所述邮件是否发送成功;
如果发送成功,则从所述请求队列中删除该邮件对应的邮件发送请求;
如果发送失败,则从所述请求队列中删除该邮件对应的邮件发送请求,再将该邮件发送请求重新缓存在所述请求队列中并进行排序。
5.根据权利要求1所述的基于优先级的邮件发送方法,其特征在于,所述方法还包括:
当下个时间段进行邮件发送时,获取所述当前时间段的未发送邮件与下个时间段内的新增发送邮件;
确定所述新增发送邮件的优先级,将所述新增发送邮件与所述未发送邮件对应的发送请求根据优先级重新在所述请求队列中进行排序。
6.根据权利要求1所述的基于优先级的邮件发送方法,其特征在于,所述方法还包括:
将所述邮件发送请求及所述邮件发送请求中的至少一个邮件及邮件对应的优先级缓存至区块链中。
7.一种基于优先级的邮件发送装置,其特征在于,包括:
获取模块,用于监控多种类型的邮件;建立定时任务记录多种类型的邮件的发送成功时间以及阅读回执时间;获取预设时间段内的多种类型的邮件的发送成功时间以及阅读回执时间;
计算模块,用于根据所述发送成功时间、阅读回执时间以及预设的优先级算法计算每种类型的邮件的优先级,定期基于最新的数据刷新邮件优先级;
生成模块,用于获取当前时间段内的待发送邮件,并根据所述待发送邮件生成每个邮件的邮件发送请求,其中,所述待发送邮件包括至少一个邮件,所述邮件发送请求包括邮件对应的优先级;
排序模块,用于将所述邮件发送请求缓存在请求队列中,根据所述邮件发送请求的优先级对所述请求队列中的邮件发送请求进行排序;
解析发送模块,用于从所述请求队列中依次读取邮件发送请求,对所述邮件发送请求进行解析,根据解析后获得的邮件数据进行邮件发送。
8.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-6中任一项所述的基于优先级的邮件发送方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1-6中任一项所述的基于优先级的邮件发送方法的步骤。
CN202011040403.0A 2020-09-28 2020-09-28 基于优先级的邮件发送方法、装置、设备及存储介质 Active CN112134790B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011040403.0A CN112134790B (zh) 2020-09-28 2020-09-28 基于优先级的邮件发送方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011040403.0A CN112134790B (zh) 2020-09-28 2020-09-28 基于优先级的邮件发送方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112134790A CN112134790A (zh) 2020-12-25
CN112134790B true CN112134790B (zh) 2023-04-14

Family

ID=73843095

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011040403.0A Active CN112134790B (zh) 2020-09-28 2020-09-28 基于优先级的邮件发送方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112134790B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1783851A (zh) * 2004-12-03 2006-06-07 国际商业机器公司 电子邮件事务系统和方法
CN103401764A (zh) * 2013-08-05 2013-11-20 浪潮(北京)电子信息产业有限公司 一种邮件发送方法和装置
CN110380949A (zh) * 2019-05-24 2019-10-25 平安普惠企业管理有限公司 内部网邮件发送方法、装置、计算机设备及存储介质
CN111526081A (zh) * 2020-03-16 2020-08-11 中国平安人寿保险股份有限公司 邮件转发方法、装置、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698369B2 (en) * 2004-05-27 2010-04-13 Strongmail Systems, Inc. Email delivery system using metadata on emails to manage virtual storage
US20090113016A1 (en) * 2007-10-24 2009-04-30 Subhabrata Sen Managing email servers by prioritizing emails

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1783851A (zh) * 2004-12-03 2006-06-07 国际商业机器公司 电子邮件事务系统和方法
CN103401764A (zh) * 2013-08-05 2013-11-20 浪潮(北京)电子信息产业有限公司 一种邮件发送方法和装置
CN110380949A (zh) * 2019-05-24 2019-10-25 平安普惠企业管理有限公司 内部网邮件发送方法、装置、计算机设备及存储介质
CN111526081A (zh) * 2020-03-16 2020-08-11 中国平安人寿保险股份有限公司 邮件转发方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN112134790A (zh) 2020-12-25

Similar Documents

Publication Publication Date Title
CN109873904B (zh) 消息推送的用户消息状态上报处理方法、装置及存储介质
CN109657152B (zh) 推送消息发送方法、装置、电子设备及可读存储介质
CN111835467A (zh) 消息发送方法、装置、计算机设备和存储介质
CN111756601B (zh) 微服务架构监控方法、装置、计算机设备及可读存储介质
EP1696611A1 (en) Server data queuing system and method
CN109714409B (zh) 一种消息的管理方法和系统
CN112015815B (zh) 数据同步方法、装置及计算机可读存储介质
CN108833443B (zh) 一种消息传输方法及系统、计算机设备
CN111756644B (zh) 热点限流方法、系统、设备及存储介质
US11194637B2 (en) Extensible alerts platform
CN113038396B (zh) 短信通道的调度方法、装置、设备及存储介质
CN103401764A (zh) 一种邮件发送方法和装置
CN114546681A (zh) 基于Kafka的消息处理方法、装置、设备及存储介质
CN112437001B (zh) 保证消息可靠性投递与消费方法、装置
CN112134790B (zh) 基于优先级的邮件发送方法、装置、设备及存储介质
CN115081651B (zh) 基于大数据的汽车配件管理方法、系统及计算机可读介质
CN111884769B (zh) 消息同步方法及装置
CN112969198A (zh) 数据传输方法、终端及存储介质
CN111488236B (zh) 一种订单异常处理方法、服务器、存储介质及处理装置
CN110489208B (zh) 虚拟机配置参数核查方法、系统、计算机设备和存储介质
CN114827157B (zh) 集群任务处理方法、装置、系统、电子设备及可读介质
CN116151929A (zh) 基于消息队列的订单协同处理方法、装置、设备及介质
CN111401819B (zh) 系统间数据推送方法及系统
CN110909086A (zh) 邮件归档方法、系统、计算机设备和计算机可读存储介质
CN116545941B (zh) 一种指令发送方法、系统、智能终端及存储介质

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