CN115150348B - 邮件附件还原方法及系统 - Google Patents

邮件附件还原方法及系统 Download PDF

Info

Publication number
CN115150348B
CN115150348B CN202110341202.2A CN202110341202A CN115150348B CN 115150348 B CN115150348 B CN 115150348B CN 202110341202 A CN202110341202 A CN 202110341202A CN 115150348 B CN115150348 B CN 115150348B
Authority
CN
China
Prior art keywords
mail
data
attachment
data block
target
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
CN202110341202.2A
Other languages
English (en)
Other versions
CN115150348A (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.)
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing Co Ltd
Original Assignee
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing Co Ltd
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 Qianxin Technology Group Co Ltd, Secworld Information Technology Beijing Co Ltd filed Critical Qianxin Technology Group Co Ltd
Priority to CN202110341202.2A priority Critical patent/CN115150348B/zh
Publication of CN115150348A publication Critical patent/CN115150348A/zh
Application granted granted Critical
Publication of CN115150348B publication Critical patent/CN115150348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/08Annexed information, e.g. attachments

Landscapes

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

Abstract

本发明公开了一种邮件附件还原方法,包括:采用预设大小的缓存区接收目标邮件中的第一邮件数据;查找所述第一邮件数据中是否存在预设的头部标识,以根据查找结果确定是否存在邮件附件的头部;若查找到所述第一邮件数据中存在所述头部标识,查找所述第一邮件数据中是否存在预设的尾部标识;若查找到所述第一邮件数据中存在所述尾部标识,则对所述第一邮件数据进行解码,得到还原后的所述目标邮件的附件。本发明实施例通过查找邮件附件的头部标识和尾部标识确定邮件附件,然后将邮件附件直接还原出来,而不需要缓存整个MIME格式的邮件内容,不仅节省了内存,而且提高了邮件附件的还原效率。

Description

邮件附件还原方法及系统
技术领域
本发明涉及网络安全技术领域,具体涉及一种邮件附件还原方法及系统。
背景技术
随着互联网技术的不断发展,电子邮件越来越成为一种重要的信息交流方式,其中,邮件附件是整个邮件多用途互联网邮件扩展类型(Multipurpose Internet MailExtensions,MIME)格式的一部分。
现有的邮件附件还原只能先缓存整个邮件数据,通过解析整个MIME格式获取邮件附件文件,并进行Base64解码,进而对邮件附件进行还原,从而获取原始文件。
然而,这种通过缓存整个邮件并解析整个MIME格式的邮件附件还原方法需要耗费大量的缓存,浪费内存的使用,并且降低邮件附件的还原效率。
发明内容
本发明的目的在于提供一种邮件附件还原方法、系统、计算机设备及可读存储介质,用于解决现有技术中通过缓存整个邮件并解析整个MIME格式的邮件附件还原方法需要耗费大量的缓存,浪费内存的使用,并且降低邮件附件的还原效率的缺陷。
根据本发明的一个方面,提供了一种邮件附件还原方法,该方法包括如下步骤:
采用预设大小的缓存区接收目标邮件中的第一邮件数据,所述第一邮件数据包括所述目标邮件的附件中的数据;
查找所述第一邮件数据中是否存在预设的头部标识,以根据查找结果确定是否存在邮件附件的头部;
若查找到所述第一邮件数据中存在所述头部标识,查找所述第一邮件数据中是否存在预设的尾部标识;
若查找到所述第一邮件数据中存在所述尾部标识,则对所述第一邮件数据进行解码,得到还原后的所述目标邮件的附件。
可选地,所述方法还包括:
若查找到所述第一邮件数据中不存在所述头部标识,则清空所述缓存区中的所述第一邮件数据。
可选地,所述方法还包括:
若查找到所述第一邮件数据中存在所述头部标识,且不存在所述尾部标识,确定所述第一邮件数据中第一个头部标识的位置;
根据确定的所述第一个头部标识的位置,将所述第一邮件数据中第一个头部标识之后的邮件数据内容切割为至少一个数据块,所述至少一个数据块包括第一数据块,所述第一数据块的数据长度不大于所述第一头部标识之后的邮件数据内容的数据长度,且为预设数值的倍数的最大值;
对所述第一数据块进行解码,得到第一目标数据块;
将所述第一目标数据块发送至落盘程序,以保存所述第一目标数据块;
清空所述缓存区中的所述第一数据块及所述第一邮件数据中所述第一个头部标识之前的邮件数据内容。
可选地,所述第一数据块的数据长度小于所述第一头部标识之后的邮件数据内容的数据长度时,所述至少一个数据块还包括第二数据块,所述第二数据块为所述第一邮件数据减去所述第一数据块及所述第一个头部标识之前的邮件数据内容后剩余的邮件数据内容,所述清空所述缓存区中的所述第一数据块及所述第一邮件数据中所述第一个头部标识之前的邮件数据内容之后,还包括:
采用所述缓存区接收第二邮件数据,所述第二邮件数据包括所述目标邮件的附件中的数据,所述第二邮件数据的长度不大于所述第一数据块的长度与所述第一个头部标识之前的邮件数据内容的长度之和;
将所述第二数据块与所述第二邮件数据进行拼接,得到邮件拼接数据,并查找所述邮件拼接数据中是否存在所述尾部标识。
可选地,所述当所述邮件拼接数据中不存在所述尾部标识时,循环执行以下步骤:
将所述邮件拼接数据从前至后切割为第三数据块和第四数据块,所述第三数据块的数据长度等于所述第二邮件数据的长度,所述第四数据块为所述邮件拼接数据减去所述第三数据块后剩余的邮件数据内容;
对所述第三数据块进行解码,并将解码后的邮件数据内容发送至所述落盘程序;
清空所述缓存区中的所述第三数据块,并采用所述缓存区接收下一个邮件数据,所述下一个邮件数据的长度不大于所述第三数据块的数据长度,所述下一个邮件数据包括所述目标邮件的附件中的数据;
将所述第四数据块与所述下一个邮件数据进行拼接,得到下一个邮件拼接数据;
查找所述下一个邮件拼接数据中是否存在所述尾部标识;
直到查找到所述尾部标识时,停止执行以上步骤。
可选地,所述方法还包括:
当查找到所述邮件拼接数据中存在所述尾部标识时,对所述邮件拼接数据的邮件数据内容进行解码,得到第二目标数据块;
将所述第二目标数据块发送至所述落盘程序,以保存所述第二目标数据块;
将所述第一目标数据块及所述第二目标数据块进行合并,得到还原后的所述目标邮件的附件。
可选地,所述对所述第一邮件数据进行解码,得到还原后的所述目标邮件的附件,包括:
对所述第一邮件数据中所述头部标识及所述尾部标识之间的邮件数据内容进行解码,得到目标邮件附件数据块;
将所述目标邮件附件数据块发送至所述落盘程序,得到所述还原后的所述目标邮件的附件。
可选地,所述方法还包括:
当所述目标邮件的附件中的数据存在一个所述头部标识时,所述还原后的所述目标邮件包括一个附件,所述一个附件的邮件数据内容为所述头部标识及所述尾部标识之间的邮件数据内容;
当所述目标邮件的附件中的数据存在多个所述头部标识时,所述还原后的所述目标邮件包括多个附件,其中,每相邻两个所述头部标识之间的邮件数据内容对应所述多个附件的其中一个附件的邮件数据内容,且最后一个所述头部标识与所述尾部标识之间的邮件数据内容对应所述多个附件中最后一个附件的邮件数据内容。
为了实现上述目的,本发明还提供一种邮件附件还原系统,该系统具体包括以下组成部分:
接收模块,用于采用预设大小的缓存区接收目标邮件中的第一邮件数据,所述第一邮件数据包括所述目标邮件的附件中的数据;
第一查找模块,用于查找所述第一邮件数据中是否存在预设的头部标识,以根据查找结果确定是否存在邮件附件的头部;
第二查找模块,用于若查找到所述第一邮件数据中存在所述头部标识,查找所述第一邮件数据中是否存在预设的尾部标识;
还原模块,用于若查找到所述第一邮件数据中存在所述尾部标识,则对所述第一邮件数据进行解码,得到还原后的所述目标邮件的附件。
为了实现上述目的,本发明还提供一种计算机设备,该计算机设备具体包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述介绍的邮件附件还原方法的步骤。
为了实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述介绍的邮件附件还原方法的步骤。
本发明提供的邮件附件还原方法,通过采用预设大小的缓存区接收目标邮件中的第一邮件数据,第一邮件数据包括所述目标邮件的附件中的数据;查找第一邮件数据中是否存在预设的头部标识,以根据查找结果确定是否存在邮件附件的头部;若查找到第一邮件数据中存在头部标识,查找第一邮件数据中是否存在预设的尾部标识;若查找到第一邮件数据中存在尾部标识,则对第一邮件数据进行解码,得到还原后的目标邮件的附件。。本发明实施例通过查找邮件附件的头部标识和尾部标识确定邮件附件,然后将邮件附件直接还原出来,而不需要缓存整个MIME格式的邮件内容,不仅节省了内存,而且提高了邮件附件的还原效率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的邮件附件还原方法的一种可选的应用环境示意图;
图2为本发明实施例提供的邮件附件还原方法的一种可选的步骤流程示意图;
图3为本发明实施例提供的邮件附件还原方法的一种可选的步骤细化流程示意图;
图4为本发明实施例提供的图3中步骤S305的一种可选的步骤细化流程示意图;
图5为本发明实施例提供的图4中步骤S312的一种可选的步骤细化流程示意图;
图6为本发明实施例提供的图4中步骤S312的另一种可选的步骤细化流程示意图;
图7为本发明实施例提供的图2中步骤S400的一种可选的步骤细化流程示意图;
图8为本发明实施例提供的邮件附件还原方法的一种可选的流程示意图;
图9为本发明实施例提供的邮件附件还原系统的一种可选的程序模块示意图;
图10为本发明实施例提供的计算机设备的一种可选的硬件架构示意图。
具体实施方式
这里将详细地对示例性发明实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性发明实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的系统和方法的例子。
在本发明使用的术语是仅仅出于描述特定发明实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本发明的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本发明及区别每一步骤,因此不能理解为对本发明的限制。基于本发明中的发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他发明实施例,都属于本发明保护的范围。
下面结合附图对本发明实施例进行说明。
参阅图1,示出了本发明实施例提供的邮件附件还原方法的一种可选的应用环境示意图,用户使用计算机设备2通过网络6连接至服务器4,实现与服务器4的通信。计算机设备2接收来自服务器4的邮件数据,通过缓存预设大小的邮件数据,查找所述预设大小的邮件数据中的邮件附件头部标识及尾部标识,实现对邮件附件的还原。
实施例一
参阅图2,示出了本发明实施例提供的一种邮件附件还原方法的步骤流程示意图。可以理解,本发明实施例中的流程图不用于对执行步骤的顺序进行限定。本发明实施例以图1中所述计算机设备2为执行主体进行示例性描述,所述计算机设备可以包括诸如智能手机、平板个人计算机(tablet personal computer)、膝上型计算机(laptop computer)等移动终端,以及诸如台式计算机等固定终端。具体如下:
步骤S100,采用预设大小的缓存区接收目标邮件中的第一邮件数据,所述第一邮件数据包括所述目标邮件的附件中的数据。
具体地,在实际应用中,经常会遇到大邮件或者大邮件附件的情况,此时可以采用预设大小的缓存区接收目标邮件中的第一邮件数据,所述预设大小可以根据需要进行自由设置。
示例性的,假设需要对4M的邮件数据进行邮件附件的还原,在接收邮件数据之前,用户设置预设大小的缓存区,例如:设置一个大小为2M的缓存区。当开始接收邮件数据时,先接收前2M的邮件数据。
步骤S200,查找所述第一邮件数据中是否存在预设的头部标识,以根据查找结果确定是否存在邮件附件的头部。
具体地,若查找到所述第一邮件数据中存在所述预设的头部标识,则确定存在所述邮件附件的头部,也即存在所述邮件附件,否则不存在。所述头部标识可以为头部关键字,比如“Content-Disposition:attachment”。
在示例性的实施例中,所述方法还可以包括:
若查找到所述第一邮件数据中不存在所述头部标识,则清空所述缓存区中的所述第一邮件数据。
示例性的,假设缓存区中的邮件数据查找不到预设的头部标识“Content-Disposition:attachment”,则表示所述缓存区中的邮件数据中不存在邮件附件,此时将所述缓存区中的邮件数据进行清空。需要说明的是,在将所述缓存区中的邮件数据清空后,若还存在剩余的邮件数据,则继续接收下一预设大小的邮件数据。例如:总的邮件数据为4M,将缓存区中的前2M邮件数据清空后,继续接收剩余的2M邮件数据。
步骤S300,若查找到所述第一邮件数据中存在所述头部标识,查找所述第一邮件数据中是否存在预设的尾部标识。
具体地,若查找到所述第一邮件数据中存在所述头部标识,则表示所述第一邮件数据中存在邮件附件,此时查找所述第一邮件数据中是否存在预设的尾部标识。所述尾部标识可以为附件尾部结束符,比如“\r\n.\r\n”。
在示例性的实施例中,如图3所示,所述方法可以包括:
步骤S301,若查找到所述第一邮件数据中存在所述头部标识,且不存在所述尾部标识,确定所述第一邮件数据中第一个头部标识的位置;
步骤S302,根据确定的所述第一个头部标识的位置,将所述第一邮件数据中第一个头部标识之后的邮件数据内容切割为至少一个数据块,所述至少一个数据块包括第一数据块,所述第一数据块的数据长度不大于所述第一头部标识之后的邮件数据内容的数据长度,且为预设数值的倍数的最大值;
步骤S303,对所述第一数据块进行解码,得到第一目标数据块;
步骤S304,将所述第一目标数据块发送至落盘程序,以保存所述第一目标数据块;
步骤S305,清空所述缓存区中的所述第一数据块及所述第一邮件数据中所述第一个头部标识之前的邮件数据内容。
示例性的,假设接收邮件数据中查找到预设的头部标识“Content-Disposition:attachment”,则查找缓存区中邮件数据是否存在尾部标识“\r\n.\r\n”。如果缓存区中的邮件数据找不到尾部标识“\r\n.\r\n”,将所述第一邮件数据中第一个头部标识之后的邮件数据内容切割至少一个数据块,且所述至少一个数据块包括第一数据块,其中,第一数据块的数据长度可以小于或者等于第一头部标识之后的邮件数据内容的数据长度,且为预设数值的倍数的最大值,例如,Base64解码时,预设数值可以为4。将第一数据块进行Base64解码,得到目标数据块并将目标数据块发送至落盘程序进行保存,最后清空缓存区中的第一数据块及所述第一邮件数据中所述第一个头部标识之前的邮件数据内容。本发明实施例通过将超过所述预设大小的邮件数据进行切割,并将切割后的邮件数据进行解码进行邮件附件的还原,实现了任意大小的邮件附件的还原。
在示例性的实施例中,如图4所示,所述第一数据块的数据长度小于所述第一头部标识之后的邮件数据内容的数据长度时,所述至少一个数据块还包括第二数据块,所述第二数据块为所述第一邮件数据减去所述第一数据块及所述第一个头部标识之前的邮件数据内容后剩余的邮件数据内容,所述清空所述缓存区中的所述第一数据块及所述第一邮件数据中所述第一个头部标识之前的邮件数据内容之后,还包括:
步骤S311,采用所述缓存区接收第二邮件数据,所述第二邮件数据包括所述目标邮件的附件中的数据,所述第二邮件数据的长度不大于所述第一数据块的长度与所述第一个头部标识之前的邮件数据内容的长度之和;
示例性的,假设缓存区中的数据长度为200,所述第一邮件数据中所述第一个头部标识之前的邮件数据内容的数据长度为103,则所述第一数据块及所述第二数据块的数据长度之和L为97=200-103,所述第一数据块的数据长度L1为不大于L且为预设数值的倍数的最大值,所述预设数值可以为4,则96=4*24,且96<97,则L1为96,即所述第一数据块的数据长度为96,所述第二数据块数据长度为1。
步骤S312,将所述第二数据块与所述第二邮件数据进行拼接,得到邮件拼接数据,并查找所述邮件拼接数据中是否存在所述尾部标识。
示例性的,采用所述缓存区接收第二邮件数据,例如,缓存区中的最大数据长度为200,第二数据块的数据长度为1,在清空缓存区中第一数据块及所述第一邮件数据中所述第一个头部标识之前的邮件数据内容之后,能继续接收数据长度为199的邮件数据,然后将第二数据块与继续接收的第二邮件数据进行拼接,并继续查找拼接后的邮件数据中是否存在预设的尾部标识操作“\r\n.\r\n”。
在示例性的实施例中,如图5所示,当所述邮件拼接数据中不存在所述尾部标识时,循环执行以下步骤:
步骤S321,将所述邮件拼接数据从前至后切割为第三数据块和第四数据块,所述第三数据块的数据长度等于所述第二邮件数据的长度,所述第四数据块为所述邮件拼接数据减去所述第三数据块后剩余的邮件数据内容;
步骤S322,对所述第三数据块进行解码,并将解码后的邮件数据内容发送至所述落盘程序;
步骤S323,清空所述缓存区中的所述第三数据块,并采用所述缓存区接收下一个邮件数据,所述下一个邮件数据的长度不大于所述第三数据块的数据长度,所述下一个邮件数据包括所述目标邮件的附件中的数据;
步骤S324,将所述第四数据块与所述下一个邮件数据进行拼接,得到下一个邮件拼接数据;
步骤S325,查找所述下一个邮件拼接数据中是否存在所述尾部标识;
步骤S326,直到查找到所述尾部标识时,停止执行以上步骤。
示例性的,当所述邮件拼接数据中不存在所述尾部标识时,将所述邮件拼接数据切割成第三数据块和第四数据块,并将第三数据块进行解码,将解码后的数据块发送至落盘程序中并继续接收下一个邮件数据,将第四数据块与下一个邮件数据进行拼接并继续查找拼接后的邮件数据中是否存在预设的尾部标识操作“\r\n.\r\n”,如此循环,直至查找到目标邮件数据中存在所述预设的尾部标识退出。本发明实施例通过将缓存区中第一邮件数据解码后,清空所述缓存区,并继续接收第二邮件数据并缓存,实现了缓存区的重复利用,使得在整个邮件附件的还原过程中,仅仅使用预设大小的缓存区进行邮件数据的缓存,而无需一次性缓存整个邮件数据,提高了缓存区的利用率,节约内存。
在示例性的实施例中,如图6所示,所述步骤S312还包括:
步骤S331,当查找到所述邮件拼接数据中存在所述尾部标识时,对所述邮件拼接数据的邮件数据内容进行解码,得到第二目标数据块;
步骤S332,将所述第二目标数据块发送至所述落盘程序,以保存所述第二目标数据块;
步骤S333,将所述第一目标数据块及所述第二目标数据块进行合并,得到还原后的所述目标邮件的附件。
示例性的,若查找拼接后的邮件数据中存在预设的尾部标识“\r\n.\r\n”,则对所述邮件拼接数据的邮件数据内容进行解码,得到第二目标数据块,并将第二目标数据块发送到落盘程序中进行保存,最后将第二目标数据块与之前解码完成的第一目标数据块进行合并,得到还原后的第二邮件附件,并清空所述缓冲区中所述第二数据块及所述第二邮件数据中所述尾部标识之前的邮件数据内容。
步骤S400,若查找到所述第一邮件数据中存在所述尾部标识,则对所述第一邮件数据进行解码,得到还原后的所述目标邮件的附件。
具体地,当查找到所述第一邮件数据中存在所述尾部标识时,表示所述邮件附件已缓存完成,此时通过对所述第一邮件数据进行解码,即可得到还原后的第一邮件附件。示例性的,若查找到所述第一邮件数据中存在所述尾部标识“\r\n.\r\n”,则对所述第一邮件数据进行Base64解码,并将解码后的数据发送至落盘程序进行保存,得到还原后的邮件附件。需要说明的是,本发明可应用于简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)、邮局协议的第3个版本(Post Office Protocol 3,POP3)以及因特网消息访问协议(Internet Message Access Protocol,IMAP)等邮件协议进行邮件附件的还原。
在示例性的实施例中,如图7所示,所述对所述第一邮件数据进行解码,得到还原后的所述目标邮件的附件,包括:
步骤S401,对所述第一邮件数据中所述头部标识及所述尾部标识之间的邮件数据内容进行解码,得到目标邮件附件数据块;
步骤S402,将所述目标邮件附件数据块发送至所述落盘程序,得到所述还原后的所述目标邮件的附件。
示例性的,对所述第一邮件数据中所述头部标识及所述尾部标识之间的邮件数据内容进行解码,得到目标邮件附件数据块,将所述目标邮件附件数据块发送至所述落盘程序,得到所述还原后的所述目标邮件的附件。并在得到还原后的所述目标邮件的附件之后,清空缓存区中的邮件数据,以便重复利用所述缓存区进行邮件数据的缓存,从而提高了缓存利用率,节省内存。
在示例性的实施例中,当所述目标邮件的附件中的数据存在一个所述头部标识时,所述还原后的所述目标邮件包括一个附件,所述一个附件的邮件数据内容为所述头部标识及所述尾部标识之间的邮件数据内容;
当所述目标邮件的附件中的数据存在多个所述头部标识时,所述还原后的所述目标邮件包括多个附件,其中,每相邻两个所述头部标识之间的邮件数据内容对应所述多个附件的其中一个附件的邮件数据内容,且最后一个所述头部标识与所述尾部标识之间的邮件数据内容对应所述多个附件中最后一个附件的邮件数据内容。
示例性的,当所述目标邮件中的邮件数据只存在一个所述头部标识时,还原后的所述目标邮件的附件只有一个,所述头部标识及所述尾部标识之间的邮件数据内容即为所述附件的邮件数据内容。当所述目标邮件中的邮件数据存在两个所述头部标识时,还原后的所述目标邮件的附件有两个,第一个所述头部标识与第二个所述头部标识之间的邮件数据内容为所述目标邮件的第一个附件的邮件数据内容,第二个所述头部标识与所述尾部标识之间的邮件数据内容为所述目标邮件的第二个附件的邮件数据内容。
本发明提供的邮件附件还原方法通过接收预设大小的邮件数据并缓存,并根据预设的头部标识及预设的尾部标识的查找结果对所述邮件数据进行解码,实现对邮件附件的还原。本发明实施例通过查找邮件附件的头部标识和尾部标识确定邮件附件,然后将邮件附件直接还原出来,而不需要缓存整个MIME格式的邮件内容,不仅节省了内存,而且提高了邮件附件的还原效率。
需要说明的是,由于邮件数据中存在多个邮件附件,所述多个邮件附件间均通过所述预设的头部标识进行区分,并在最后一个邮件附件的最后以所述预设的尾部标识进行标记,当查找到所述尾部标识时,则代表所有的邮件附件均已查找到,此时进行邮件数据的解码,解码后即可得到所有的邮件附件。通过本发明实施例,便可还原出任意个数的邮件附件。
参阅图8,示出了本发明实施例提供的邮件附件还原方法的一种可选的流程示意图。用户设置2M的缓存区并接收邮件数据,然后查找所述邮件数据的附件头部。若查找不到所述附件头部,则清空所述缓存。若查找到所述附件头部,则继续查找附件尾部。若查找到所述附件头部,但查找不到所述附件尾部,则将所述邮件数据切割成多个数据块并将小于所述邮件数据长度且为4的倍数的最大值的数据块进行Base64解码,然后,清空所述缓存中已解码的数据块,继续接收邮件数据直至查找到所述附件尾部。若查找到所述附件头部,并查找到所述附件尾部,则直接对所述邮件数据进行Base64解码并将还原好的数据块发送至落盘程序进行保存,完成对所述邮件数据中邮件附件的还原。
实施例二
参阅图9,示出了本发明实施例之一种邮件附件还原系统700的程序模块示意图。所述邮件附件还原系统700可以应用于计算机设备中,所述计算机设备可以是手机、平板个人计算机(tablet personal computer)、膝上型计算机(laptop computer)、等具有数据传输功能的设备。在本发明实施例中,所述邮件附件还原系统700可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于可读存储介质中,并由一个或多个处理器所执行,以完成本发明实施例,并可实现上述邮件附件还原系统700。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述所述邮件附件还原系统700在可读存储介质中的执行过程。在示例性的实施例中,该邮件附件还原系统700包括接收模块701、第一查找模块702、第二查找模块703以及还原模块704。以下描述将具体介绍本发明实施例各程序模块的功能:
接收模块701,用于采用预设大小的缓存区接收目标邮件中的第一邮件数据,所述第一邮件数据包括所述目标邮件的附件中的数据。
具体地,在实际应用中,经常会遇到大邮件或者大邮件附件的情况,此时可以采用预设大小的缓存区接收目标邮件中的第一邮件数据,所述预设大小可以根据需要进行自由设置。
示例性的,假设需要对4M的邮件数据进行邮件附件的还原,所述接收模块701在接收邮件数据之前,用户设置预设大小的缓存区,例如:设置一个大小为2M的缓存区。当开始接收邮件数据时,先接收前2M的邮件数据。
第一查找模块702,用于查找所述第一邮件数据中是否存在预设的头部标识,以根据查找结果确定是否存在邮件附件的头部。
具体地,若查找到所述第一邮件数据中存在所述预设的头部标识,则确定存在所述邮件附件的头部,也即存在所述邮件附件,否则不存在。所述头部标识可以为头部关键字,比如“Content-Disposition:attachment”。
在示例性的实施例中,所述第一查找模块702具体用于:
若查找到所述第一邮件数据中不存在所述头部标识,则清空所述缓存区中的所述第一邮件数据。
示例性的,假设缓存区中的邮件数据查找不到预设的头部标识“Content-Disposition:attachment”,则表示所述缓存区中的邮件数据中不存在邮件附件,此时将所述缓存区中的邮件数据进行清空。需要说明的是,在将所述缓存区中的邮件数据清空后,若还存在剩余的邮件数据,则继续接收下一预设大小的邮件数据。例如:总的邮件数据为4M,将缓存区中的前2M邮件数据清空后,继续接收剩余的2M邮件数据。
第二查找模块703,用于若查找到所述第一邮件数据中存在所述头部标识,查找所述第一邮件数据中是否存在预设的尾部标识。
具体地,若查找到所述第一邮件数据中存在所述头部标识,则表示所述第一邮件数据中存在邮件附件,此时查找所述第一邮件数据中是否存在预设的尾部标识。所述尾部标识可以为附件尾部结束符,比如“\r\n.\r\n”。
在示例性的实施例中,所述第二查找模块703具体用于:
若查找到所述第一邮件数据中存在所述头部标识,且不存在所述尾部标识,确定所述第一邮件数据中第一个头部标识的位置;
根据确定的所述第一个头部标识的位置,将所述第一邮件数据中第一个头部标识之后的邮件数据内容切割为至少一个数据块,所述至少一个数据块包括第一数据块,所述第一数据块的数据长度不大于所述第一头部标识之后的邮件数据内容的数据长度,且为预设数值的倍数的最大值;
对所述第一数据块进行解码,得到第一目标数据块;
将所述第一目标数据块发送至落盘程序,以保存所述第一目标数据块;
清空所述缓存区中的所述第一数据块及所述第一邮件数据中所述第一个头部标识之前的邮件数据内容。
示例性的,假设接收邮件数据中查找到预设的头部标识“Content-Disposition:attachment”,则查找缓存区中邮件数据是否存在尾部标识“\r\n.\r\n”。如果缓存区中的邮件数据找不到尾部标识“\r\n.\r\n”,将所述第一邮件数据中第一个头部标识之后的邮件数据内容切割至少一个数据块,且所述至少一个数据块包括第一数据块,其中,第一数据块的数据长度可以小于或者等于第一头部标识之后的邮件数据内容的数据长度,且为预设数值的倍数的最大值,例如,Base64解码时,预设数值可以为4。将第一数据块进行Base64解码,得到目标数据块并将目标数据块发送至落盘程序进行保存,最后清空缓存区中的第一数据块及所述第一邮件数据中所述第一个头部标识之前的邮件数据内容。本发明实施例通过将超过所述预设大小的邮件数据进行切割,并将切割后的邮件数据进行解码进行邮件附件的还原,实现了任意大小的邮件附件的还原。
在一个实施例中,第一数据块的数据长度小于第一头部标识之后的邮件数据内容的数据长度时,至少一个数据块还包括第二数据块,第二数据块为第一邮件数据减去第一数据块及第一个头部标识之前的邮件数据内容后剩余的邮件数据内容。
示例性的,假设缓存区中的数据长度为200,所述第一邮件数据中所述第一个头部标识之前的邮件数据内容的数据长度为103,则所述第一数据块及所述第二数据块的数据长度之和L为97=200-103,所述第一数据块的数据长度L1为小于L且为预设数值的倍数的最大值,所述预设数值可以为4,则96=4*24,且96<97,则L1为96,即所述第一数据块的数据长度为96,所述第二数据块的数据长度为1。
在示例性的实施例中,所述第二查找模块703具体还用于:
采用所述缓存区接收第二邮件数据,所述第二邮件数据包括所述目标邮件的附件中的数据,所述第二邮件数据的长度不大于所述第一数据块的长度与所述第一个头部标识之前的邮件数据内容的长度之和;
示例性的,假设缓存区中的数据长度为200,所述第一邮件数据中所述第一个头部标识之前的邮件数据内容的数据长度为103,则所述第一数据块及所述第二数据块的数据长度之和L为97=200-103,所述第一数据块的数据长度L1为不大于L且为预设数值的倍数的最大值,所述预设数值可以为4,则96=4*24,且96<97,则L1为96,即所述第一数据块的数据长度为96,所述第二数据块数据长度为1。
将所述第二数据块与所述第二邮件数据进行拼接,得到邮件拼接数据,并查找所述邮件拼接数据中是否存在所述尾部标识。
示例性的,采用所述缓存区接收第二邮件数据,例如,缓存区中的最大数据长度为200,第二数据块的数据长度为1,在清空缓存区中第一数据块及所述第一邮件数据中所述第一个头部标识之前的邮件数据内容之后,能继续接收数据长度为199的邮件数据,然后将第二数据块与继续接收的第二邮件数据进行拼接,并继续查找拼接后的邮件数据中是否存在预设的尾部标识操作“\r\n.\r\n”。
在示例性的实施例中,所述第二查找模块703具体还用于:
将所述邮件拼接数据从前至后切割为第三数据块和第四数据块,所述第三数据块的数据长度等于所述第二邮件数据的长度,所述第四数据块为所述邮件拼接数据减去所述第三数据块后剩余的邮件数据内容;
对所述第三数据块进行解码,并将解码后的邮件数据内容发送至所述落盘程序;
清空所述缓存区中的所述第三数据块,并采用所述缓存区接收下一个邮件数据,所述下一个邮件数据的长度不大于所述第三数据块的数据长度,所述下一个邮件数据包括所述目标邮件的附件中的数据;
将所述第四数据块与所述下一个邮件数据进行拼接,得到下一个邮件拼接数据;
查找所述下一个邮件拼接数据中是否存在所述尾部标识;
直到查找到所述尾部标识时,停止执行以上步骤。
示例性的,当所述邮件拼接数据中不存在所述尾部标识时,将所述邮件拼接数据切割成第三数据块和第四数据块,并将第三数据块进行解码,将解码后的数据块发送至落盘程序中并继续接收下一个邮件数据,将第四数据块与下一个邮件数据进行拼接并继续查找拼接后的邮件数据中是否存在预设的尾部标识操作“\r\n.\r\n”,如此循环,直至查找到目标邮件数据中存在所述预设的尾部标识退出。本发明实施例通过将缓存区中第一邮件数据解码后,清空所述缓存区,并继续接收第二邮件数据并缓存,实现了缓存区的重复利用,使得在整个邮件附件的还原过程中,仅仅使用预设大小的缓存区进行邮件数据的缓存,而无需一次性缓存整个邮件数据,提高了缓存区的利用率,节约内存。
在示例性的实施例中,所述第二查找模块703具体还用于:
当查找到所述邮件拼接数据中存在所述尾部标识时,对所述邮件拼接数据的邮件数据内容进行解码,得到第二目标数据块;
将所述第二目标数据块发送至所述落盘程序,以保存所述第二目标数据块;
将所述第一目标数据块及所述第二目标数据块进行合并,得到还原后的所述目标邮件的附件。
示例性的,若查找拼接后的邮件数据中存在预设的尾部标识“\r\n.\r\n”,则对所述邮件拼接数据的邮件数据内容进行解码,得到第二目标数据块,并将第二目标数据块发送到落盘程序中进行保存,最后将第二目标数据块与之前解码完成的第一目标数据块进行合并,得到还原后的第二邮件附件,并清空所述缓冲区中所述第二数据块及所述第二邮件数据中所述尾部标识之前的邮件数据内容。
还原模块704,用于若查找到所述第一邮件数据中存在所述尾部标识,则对所述第一邮件数据进行解码,得到还原后的所述目标邮件的附件。
具体地,当查找到所述第一邮件数据中存在所述尾部标识时,表示所述邮件附件已缓存完成,此时通过对所述第一邮件数据进行解码,即可得到还原后的第一邮件附件。示例性的,若查找到所述第一邮件数据中存在所述尾部标识“\r\n.\r\n”,则对所述第一邮件数据进行Base64解码,并将解码后的数据发送至落盘程序进行保存,得到还原后的邮件附件。需要说明的是,本发明可应用于简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)、邮局协议的第3个版本(Post Office Protocol 3,POP3)以及因特网消息访问协议(Internet Message Access Protocol,IMAP)等邮件协议进行邮件附件的还原。
在示例性的实施例中,所述还原模块704具体用于:
对所述第一邮件数据中所述头部标识及所述尾部标识之间的邮件数据内容进行解码,得到目标邮件附件数据块;
将所述目标邮件附件数据块发送至所述落盘程序,得到所述还原后的所述目标邮件的附件。
示例性的,对所述第一邮件数据中所述头部标识及所述尾部标识之间的邮件数据内容进行解码,得到目标邮件附件数据块,将所述目标邮件附件数据块发送至所述落盘程序,得到所述还原后的所述目标邮件的附件。并在得到还原后的所述目标邮件的附件之后,清空缓存区中的邮件数据,以便重复利用所述缓存区进行邮件数据的缓存,从而提高了缓存利用率,节省内存。
在示例性的实施例中,所述邮件附件还原系统700具体还用于:
当所述目标邮件的附件中的数据存在一个所述头部标识时,所述还原后的所述目标邮件包括一个附件,所述一个附件的邮件数据内容为所述头部标识及所述尾部标识之间的邮件数据内容;
当所述目标邮件的附件中的数据存在多个所述头部标识时,所述还原后的所述目标邮件包括多个附件,其中,每相邻两个所述头部标识之间的邮件数据内容对应所述多个附件的其中一个附件的邮件数据内容,且最后一个所述头部标识与所述尾部标识之间的邮件数据内容对应所述多个附件中最后一个附件的邮件数据内容。
示例性的,当所述目标邮件中的邮件数据只存在一个所述头部标识时,还原后的所述目标邮件的附件只有一个,所述头部标识及所述尾部标识之间的邮件数据内容即为所述附件的邮件数据内容。当所述目标邮件中的邮件数据存在两个所述头部标识时,还原后的所述目标邮件的附件有两个,第一个所述头部标识与第二个所述头部标识之间的邮件数据内容为所述目标邮件的第一个附件的邮件数据内容,第二个所述头部标识与所述尾部标识之间的邮件数据内容为所述目标邮件的第二个附件的邮件数据内容。
本发明提供的邮件附件还原系统700通过接收预设大小的邮件数据并缓存,并根据预设的头部标识及预设的尾部标识的查找结果对所述邮件数据进行解码,实现对邮件附件的还原。本发明实施例通过查找邮件附件的头部标识和尾部标识确定邮件附件,然后将邮件附件直接还原出来,而不需要缓存整个MIME格式的邮件内容,不仅节省了内存,而且提高了邮件附件的还原效率。
需要说明的是,由于邮件数据中存在多个邮件附件,所述多个邮件附件间均通过所述预设的头部标识进行区分,并在最后一个邮件附件的最后以所述预设的尾部标识进行标记,当查找到所述尾部标识时,则代表所有的邮件附件均已查找到,此时进行邮件数据的解码,解码后即可得到所有的邮件附件。通过本发明实施例,便可还原出任意个数的邮件附件。
实施例三
参阅图10,本发明实施例还提供一种计算机设备800的硬件架构示意图。如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。在本发明实施例中,所述计算机设备800是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。如图所示,所述计算机设备800至少包括,但不限于,可通过装置总线相互通信连接存储器801、处理器802、网络接口803。其中:
本发明实施例中,存储器801至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些发明实施例中,存储器801可以是计算机设备800的内部存储单元,例如所述计算机设备800的硬盘或内存。在另一些发明实施例中,存储器801也可以是计算机设备800的外部存储设备,例如所述计算机设备800上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。当然,存储器801还可以既包括计算机设备800的内部存储单元也包括其外部存储设备。本发明实施例中,存储器801通常用于存储安装于计算机设备800的操作装置和各类应用软件,例如所述邮件附件还原系统700的程序代码等。此外,存储器801还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器802在一些发明实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他语音处理芯片。所述处理器802通常用于控制计算机设备800的总体操作。本发明实施例中,处理器802用于运行存储器801中存储的程序代码或者处理数据,例如运行所述邮件附件还原系统700的程序代码,以实现上述各个发明实施例中的所述邮件附件还原方法。
所述网络接口803可包括无线网络接口或有线网络接口,所述网络接口803通常用于在所述计算机设备800与其他电子装置之间建立通信连接。例如,所述网络接口803用于通过网络将所述计算机设备800与外部终端相连,在所述计算机设备800与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯装置(Global System of Mobile communication,GSM)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图10仅示出了具有部件801-803的计算机设备800,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本发明实施例中,存储于存储器801中的所述邮件附件还原系统700还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器801中,并由一个或多个处理器(本发明实施例为处理器802)所执行,以完成本发明之邮件附件还原方法。
实施例四
本发明实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本发明实施例的计算机可读存储介质用于存储所述邮件附件还原系统700,以被处理器执行时实现本发明之邮件附件还原方法。
上述本发明实施例序号仅仅为了描述,不代表发明实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述发明实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选发明实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种邮件附件还原方法,其特征在于,所述方法包括:
采用预设大小的缓存区接收目标邮件中的第一邮件数据,所述第一邮件数据包括所述目标邮件的附件中的数据;
查找所述第一邮件数据中是否存在预设的头部标识,以根据查找结果确定是否存在邮件附件的头部;
若查找到所述第一邮件数据中存在所述头部标识,查找所述第一邮件数据中是否存在预设的尾部标识;
若查找到所述第一邮件数据中存在所述尾部标识,则对所述第一邮件数据进行解码,得到还原后的所述目标邮件的附件;
其中,所述方法还包括:
若查找到所述第一邮件数据中存在所述头部标识,且不存在所述尾部标识,确定所述第一邮件数据中第一个头部标识的位置;
根据确定的所述第一个头部标识的位置,将所述第一邮件数据中第一个头部标识之后的邮件数据内容切割为至少一个数据块,所述至少一个数据块包括第一数据块,所述第一数据块的数据长度不大于所述第一头部标识之后的邮件数据内容的数据长度,且为预设数值的倍数的最大值;
对所述第一数据块进行解码,得到第一目标数据块;
将所述第一目标数据块发送至落盘程序,以保存所述第一目标数据块;及
清空所述缓存区中的所述第一数据块及所述第一邮件数据中所述第一个头部标识之前的邮件数据内容。
2.如权利要求1所述的邮件附件还原方法,其特征在于,所述方法还包括:
若查找到所述第一邮件数据中不存在所述头部标识,则清空所述缓存区中的所述第一邮件数据。
3.如权利要求1所述的邮件附件还原方法,其特征在于,所述第一数据块的数据长度小于所述第一头部标识之后的邮件数据内容的数据长度时,所述至少一个数据块还包括第二数据块,所述第二数据块为所述第一邮件数据减去所述第一数据块及所述第一个头部标识之前的邮件数据内容后剩余的邮件数据内容,所述清空所述缓存区中的所述第一数据块及所述第一邮件数据中所述第一个头部标识之前的邮件数据内容之后,还包括:
采用所述缓存区接收第二邮件数据,所述第二邮件数据包括所述目标邮件的附件中的数据,所述第二邮件数据的长度不大于所述第一数据块的长度与所述第一个头部标识之前的邮件数据内容的长度之和;及
将所述第二数据块与所述第二邮件数据进行拼接,得到邮件拼接数据,并查找所述邮件拼接数据中是否存在所述尾部标识。
4.如权利要求3所述的邮件附件还原方法,其特征在于,当所述邮件拼接数据中不存在所述尾部标识时,循环执行以下步骤:
将所述邮件拼接数据从前至后切割为第三数据块和第四数据块,所述第三数据块的数据长度等于所述第二邮件数据的长度,所述第四数据块为所述邮件拼接数据减去所述第三数据块后剩余的邮件数据内容;
对所述第三数据块进行解码,并将解码后的邮件数据内容发送至所述落盘程序;
清空所述缓存区中的所述第三数据块,并采用所述缓存区接收下一个邮件数据,所述下一个邮件数据的长度不大于所述第三数据块的数据长度,所述下一个邮件数据包括所述目标邮件的附件中的数据;
将所述第四数据块与所述下一个邮件数据进行拼接,得到下一个邮件拼接数据;
查找所述下一个邮件拼接数据中是否存在所述尾部标识;及
直到查找到所述尾部标识时,停止执行以上步骤。
5.如权利要求3所述的邮件附件还原方法,其特征在于,所述方法还包括:
当查找到所述邮件拼接数据中存在所述尾部标识时,对所述邮件拼接数据的邮件数据内容进行解码,得到第二目标数据块;
将所述第二目标数据块发送至所述落盘程序,以保存所述第二目标数据块;及
将所述第一目标数据块及所述第二目标数据块进行合并,得到还原后的所述目标邮件的附件。
6.如权利要求1所述的邮件附件还原方法,其特征在于,所述对所述第一邮件数据进行解码,得到还原后的所述目标邮件的附件,包括:
对所述第一邮件数据中所述头部标识及所述尾部标识之间的邮件数据内容进行解码,得到目标邮件附件数据块;及
将所述目标邮件附件数据块发送至所述落盘程序,得到所述还原后的所述目标邮件的附件。
7.如权利要求6所述的邮件附件还原方法,其特征在于:
当所述目标邮件的附件中的数据存在一个所述头部标识时,所述还原后的所述目标邮件包括一个附件,所述一个附件的邮件数据内容为所述头部标识及所述尾部标识之间的邮件数据内容;
当所述目标邮件的附件中的数据存在多个所述头部标识时,所述还原后的所述目标邮件包括多个附件,其中,每相邻两个所述头部标识之间的邮件数据内容对应所述多个附件的其中一个附件的邮件数据内容,且最后一个所述头部标识与所述尾部标识之间的邮件数据内容对应所述多个附件中最后一个附件的邮件数据内容。
8.一种邮件附件还原系统,其特征在于,所述系统包括:
接收模块,用于采用预设大小的缓存区接收目标邮件中的第一邮件数据,所述第一邮件数据包括所述目标邮件的附件中的数据;
第一查找模块,用于查找所述第一邮件数据中是否存在预设的头部标识,以根据查找结果确定是否存在邮件附件的头部;
第二查找模块,用于若查找到所述第一邮件数据中存在所述头部标识,查找所述第一邮件数据中是否存在预设的尾部标识;
还原模块,用于若查找到所述第一邮件数据中存在所述尾部标识,则对所述第一邮件数据进行解码,得到还原后的所述目标邮件的附件;
其中,所述第二查找模块还用于:
若查找到所述第一邮件数据中存在所述头部标识,且不存在所述尾部标识,确定所述第一邮件数据中第一个头部标识的位置;
根据确定的所述第一个头部标识的位置,将所述第一邮件数据中第一个头部标识之后的邮件数据内容切割为至少一个数据块,所述至少一个数据块包括第一数据块,所述第一数据块的数据长度不大于所述第一头部标识之后的邮件数据内容的数据长度,且为预设数值的倍数的最大值;
对所述第一数据块进行解码,得到第一目标数据块;
将所述第一目标数据块发送至落盘程序,以保存所述第一目标数据块;及
清空所述缓存区中的所述第一数据块及所述第一邮件数据中所述第一个头部标识之前的邮件数据内容。
9.一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项的所述邮件附件还原方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项的所述邮件附件还原方法的步骤。
CN202110341202.2A 2021-03-30 2021-03-30 邮件附件还原方法及系统 Active CN115150348B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110341202.2A CN115150348B (zh) 2021-03-30 2021-03-30 邮件附件还原方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110341202.2A CN115150348B (zh) 2021-03-30 2021-03-30 邮件附件还原方法及系统

Publications (2)

Publication Number Publication Date
CN115150348A CN115150348A (zh) 2022-10-04
CN115150348B true CN115150348B (zh) 2024-05-03

Family

ID=83404106

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110341202.2A Active CN115150348B (zh) 2021-03-30 2021-03-30 邮件附件还原方法及系统

Country Status (1)

Country Link
CN (1) CN115150348B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101202738A (zh) * 2006-12-11 2008-06-18 腾讯科技(深圳)有限公司 一种融合邮件系统和网络硬盘的方法、系统及装置
CN102045268A (zh) * 2010-11-18 2011-05-04 厦门市美亚柏科信息股份有限公司 一种电子邮件数据恢复方法及装置
CN107204916A (zh) * 2017-06-21 2017-09-26 天津光电通信技术有限公司 基于Tilera多核板卡网络数据包的邮件还原方法
CN110266775A (zh) * 2019-06-04 2019-09-20 南京南瑞继保电气有限公司 文件传输方法、装置、计算机设备及存储介质
CN112035410A (zh) * 2020-08-18 2020-12-04 腾讯科技(深圳)有限公司 日志存储方法、装置、节点设备及存储介质
CN112165331A (zh) * 2020-09-22 2021-01-01 上海华东汽车信息技术有限公司 数据压缩方法及其装置、数据解压方法及其装置、存储介质及电子设备
CN112527736A (zh) * 2020-12-09 2021-03-19 中国科学院深圳先进技术研究院 基于dna的数据存储方法、数据恢复方法及终端设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6319083B2 (ja) * 2012-07-10 2018-05-09 ソニー株式会社 画像復号装置、画像復号方法、画像符号化装置及び画像符号化方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101202738A (zh) * 2006-12-11 2008-06-18 腾讯科技(深圳)有限公司 一种融合邮件系统和网络硬盘的方法、系统及装置
CN102045268A (zh) * 2010-11-18 2011-05-04 厦门市美亚柏科信息股份有限公司 一种电子邮件数据恢复方法及装置
CN107204916A (zh) * 2017-06-21 2017-09-26 天津光电通信技术有限公司 基于Tilera多核板卡网络数据包的邮件还原方法
CN110266775A (zh) * 2019-06-04 2019-09-20 南京南瑞继保电气有限公司 文件传输方法、装置、计算机设备及存储介质
CN112035410A (zh) * 2020-08-18 2020-12-04 腾讯科技(深圳)有限公司 日志存储方法、装置、节点设备及存储介质
CN112165331A (zh) * 2020-09-22 2021-01-01 上海华东汽车信息技术有限公司 数据压缩方法及其装置、数据解压方法及其装置、存储介质及电子设备
CN112527736A (zh) * 2020-12-09 2021-03-19 中国科学院深圳先进技术研究院 基于dna的数据存储方法、数据恢复方法及终端设备

Also Published As

Publication number Publication date
CN115150348A (zh) 2022-10-04

Similar Documents

Publication Publication Date Title
WO2018076755A1 (zh) 一种升级包下发方法及装置
EP2369501A2 (en) Information processing apparatus, information processing method, data management server and data synchronization system
CN110753084B (zh) 上链数据读取方法、缓存服务器及计算机可读存储介质
CN102468989B (zh) 处理网络数据的方法和系统
EP1388792A1 (en) Synchronization message processing method
CN110493122B (zh) 一种会话信息的同步方法、装置、计算设备及存储介质
CN112422497B (zh) 消息传递方法、装置及计算机设备
CN111835467A (zh) 消息发送方法、装置、计算机设备和存储介质
US10938773B2 (en) Method and apparatus for synchronizing contact information and medium
US20110161435A1 (en) System and method for deferred transmission of attachments
CA2498438C (en) Font data processing system and method
US8972508B1 (en) Methods and systems for managing email configuration
CN115150348B (zh) 邮件附件还原方法及系统
US9547842B2 (en) Out-of-office electronic mail messaging system
CN107329832B (zh) 一种数据接收方法及装置
US8032163B2 (en) System and method for performing quick short message functions for a mobile phone
CN110442439B (zh) 任务进程处理方法、装置和计算机设备
CN111274047A (zh) 信息处理方法、终端、系统、计算机设备和存储介质
CN112688980B (zh) 资源分发方法、装置、计算机设备
CN105912477B (zh) 一种目录读取的方法、装置及系统
CN112069258B (zh) 事务进度的管理方法、装置及分布式数据库
CN113672488A (zh) 日志文本处理方法及装置
CN114928610A (zh) 数据更新的通知方法、数据处理方法、装置、设备和介质
CN114553944A (zh) 预警消息推送方法和系统
CN113326333A (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
CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: China

Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant after: Qianxin Technology Group Co.,Ltd.

Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd.

Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant before: Qianxin Technology Group Co.,Ltd.

Country or region before: China

Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc.

GR01 Patent grant
GR01 Patent grant