一种邮件同步的方法及装置的制造方法

文档序号:10538567阅读:234来源:国知局
一种邮件同步的方法及装置的制造方法
【专利摘要】本发明公开了一种邮件同步的方法及装置,用于实现减少终端设备和服务器的交互次数、节省邮件协议所占用的额外网络流量以及减少不必要的同步操作。所述方法包括:建立邮件的操作列表,操作列表用于记录在终端设备上对邮件的本地操作;将操作列表中预设时间段内记录的对邮件的本地操作进行合并;向服务器发送包括合并后的本地操作的同步命令,服务器用于根据同步命令将对邮件的合并后的本地操作同步到服务器中。该技术方案能够减少终端设备和服务器的交互次数,且节省邮件协议所占用的额外网络流量,还能够减少很多不必要的同步操作。同时允许一次批量同步中存在部分成功及部分失败的状态,从而可以对部分失败的同步操作进行撤销,提高同步效率。
【专利说明】
一种邮件同步的方法及装置
技术领域
[0001]本发明涉及互联网技术领域,尤其涉及一种邮件同步的方法及装置。
【背景技术】
[0002]移动终端上对邮件的本地操作包括新建、删除、移动、标记已读或未读、添加星标、更改回复状态等等,而对于这些本地操作,都需要同步到邮件服务器上才能保证将邮件的本地操作保存在服务器中,其它的邮件客户端才能得到更新。
[0003]目前的同步方法通常为将每个本地操作单独与服务器进行同步,有多少个本地操作,就会有多少次同步。而对于每次同步时邮件协议所造成的额外网络流量来说,同步的次数越多,额外的网络流量也越多,这就导致这些本地操作同步到服务器的过程需要耗费大量的网络流量,而对于移动终端来说,节省网络流量是应用需要考虑的关键因素之一。其次,部分本地操作会因为后续的操作变成“无效”的,例如将一封邮件添加星标后,很快又删除了该邮件,那么之前添加星标的操作即使同步到了服务器上也因为后续的删除操作而失去意义。
[0004]对于上述同步方法的不足,还有一种通过记录本地客户端和服务器端的状态差异来进行同步的方法。通过记录邮件在本地客户端和服务器端的状态差异,并根据状态差异计算出需要向服务器发送的上传命令,从而实现本地客户端和服务器的同步。然而,这种方法虽然解决了上述问题,但仍然存在许多不足。首先,这种方法由于只记录了两种状态,而没有记录用户的操作,当在无网络的情况下,积累下来的本地操作会使得两种状态的差异很大,这就为之后的上传同步造成了很大的风险,包括计算的复杂度和同步失败。一旦同步失败,需要回到同步前的状态重新来过,而并没有“部分成功”的状态。同样的,由于没有记录用户的操作,“撤销”操作也只能回到同步前的状态,不存在“部分失败”的状态,因此缺乏灵活性,也造成了网络流量的浪费。其次,由于该方法记录的是账号范围内的状态变化,无法反映一个账号的邮件变化对另一个账号造成的影响,因此无法实现跨邮件账号的移动操作。再次,该方法的数据结构无法记录需要上传服务器的邮件,因此无法实现邮件的上传。再次,容易造成本地操作丢失,比如,当一封邮件超出同步窗口、需要从本地删除(不需要删除服务器上的邮件)时,该邮件对应的本地操作也随之删除了,从而造成本地操作的丢失;再比如,如果在上传本地操作的过程中发生新的操作,这些新操作也会在这次上传成功后被删除,从而造成本地操作的丢失。最后,该方法浪费存储空间。例如,为了记录一封邮件上的操作,需要复制该邮件,而邮件中的大部分数据对于该操作是没有意义的,如邮件正文。

【发明内容】

[0005]本发明实施例提供一种邮件同步的方法及装置,用于实现减少终端设备和服务器的交互次数、节省邮件协议所占用的额外网络流量以及减少不必要的同步操作。
[0006]一种邮件同步的方法,用于终端设备,包括以下步骤:
[0007]建立邮件的操作列表,所述操作列表用于记录在所述终端设备上对所述邮件的本地操作;
[0008]将所述操作列表中预设时间段内记录的对所述邮件的本地操作进行合并;
[0009]向服务器发送包括所述合并后的本地操作的同步命令,所述服务器用于根据所述同步命令将对所述邮件的合并后的本地操作同步到服务器中。
[0010]本发明实施例的一些有益效果可以包括:通过将邮件的本地操作缓存在本地终端,并合并一段时间内的本地操作,进而批量上传给服务器,因此能够大大减少终端设备和服务器的交互次数,并且节省了邮件协议所占用的额外网络流量,还能够减少很多不必要的同步操作。同时,该方案允许一次批量同步中存在部分成功及部分失败的状态,从而可以对部分失败的同步操作进行撤销,提高同步效率。
[0011]在一个实施例中,所述将所述操作列表中预设时间段内记录的对所述邮件的本地操作进行合并,包括:
[0012]识别所述本地操作中是否同时存在添加邮件操作和删除邮件操作;当识别到所述本地操作中同时存在添加邮件操作和删除邮件操作时,消除所述添加邮件操作以及所述添加邮件操作的上一个或者下一个删除邮件操作,并消除所述添加邮件操作以及所述添加邮件操作的上一个或者下一个删除邮件操作之间的其他本地操作;
[0013]识别所述本地操作中是否存在删除邮件操作;当识别到所述本地操作中存在删除邮件操作时,消除所述删除邮件操作之前的其他本地操作;
[0014]对所述本地操作中的同类项进行合并,得到合并后的本地操作,所述同类项为添加邮件操作和移动邮件操作、多个移动邮件操作或互为相反操作的本地操作;
[0015]对所述合并后的本地操作进行排序。
[0016]该实施例中,通过具体的本地操作进行消除、合并、排序等步骤,减少了大量不必要同步的操作,进而批量上传给服务器,使得终端设备和服务器的交互次数大大减少,并且节省了邮件协议所占用的额外网络流量,还能够减少很多不必要的同步操作。
[0017]在一个实施例中,所述对所述本地操作中的同类项进行合并,得到合并后的本地操作,所述同类项为添加邮件操作和移动邮件操作、多个移动邮件操作或互为相反操作的本地操作,包括:
[0018]当所述同类项为添加邮件操作和移动邮件操作时,将所述添加邮件操作和移动邮件操作合并为所述移动邮件操作指向的文件夹中的添加邮件操作;
[0019]当所述同类项为多个移动邮件操作时,将所述多个移动邮件操作合并为一个移动邮件操作,所述一个移动邮件操作为将所述邮件从起始位置移动到最后一个移动邮件操作所指向的文件夹;
[0020]当所述同类项为互为相反操作的本地操作时,消除所述互为相反操作的本地操作。
[0021 ] 该实施例中,通过将本地操作进行合并,减少了大量不必要同步的操作,进而批量上传给服务器,使得终端设备和服务器的交互次数大大减少,并且节省了邮件协议所占用的额外网络流量,还能够减少很多不必要的同步操作。
[0022]在一个实施例中,所述对所述合并后的本地操作进行排序,包括:
[0023]判断所述合并后的本地操作中,除添加邮件操作以外的其他本地操作是否在所述添加邮件操作之后进行;
[0024]当判定所述合并后的本地操作中,除添加邮件操作以外的其他本地操作在所述添加邮件操作之后进行时,将所述合并后的本地操作中的添加邮件操作排在所有本地操作的最前;
[0025]当判定所述合并后的本地操作中,除添加邮件操作以外的其他本地操作不是在所述添加邮件操作之后进行时,将所述合并后的本地操作中的添加邮件操作和/或移动邮件操作排在所有本地操作的最前或者最后。
[0026]该实施例中,根据本地操作进行的顺序对合并后的本地操作进行排序,使得服务器能够批量同步邮件的本地操作,提高同步邮件的效率,从而节省邮件协议所占用的额外网络流量,还能够减少很多不必要的同步操作。
[0027]在一个实施例中,所述将所述操作列表中预设时间段内记录的对所述邮件的本地操作进行合并之后,所述方法还包括:
[0028]判断所述合并后的本地操作中是否包含移动邮件操作;
[0029]当所述合并后的本地操作中包含移动邮件操作时,将对所述邮件的本地操作归类为移动请求;当所述合并后的本地操作中不包含移动邮件操作时,将对所述邮件的本地操作归类为非移动请求;
[0030]向服务器发送包括所述归类后的非移动请求和/或移动请求的同步命令,所述服务器用于根据所述同步命令将所述非移动请求和/或移动请求同步到服务器中,其中,所述服务器先对所述非移动请求进行同步、再对所述移动请求进行同步。
[0031]该实施例中,将邮件的本地操作划分为非移动请求和移动请求两类,使得服务器同步邮件时能够根据邮件在服务器上的组织形式批量同步,从而提高邮件操作的成功率。
[0032]—种邮件同步的方法,用于服务器,包括:
[0033]接收终端设备发送的同步命令,所述同步命令包括对所述邮件的合并后的本地操作;
[0034]根据所述同步命令,将对所述邮件的合并后的本地操作同步到所述服务器中。
[0035]本发明实施例的一些有益效果可以包括:对邮件的合并后的本地操作进行批量同步,大大减少了终端设备和服务器的交互次数,并且节省了邮件协议所占用的额外网络流量,还能够减少很多不必要的同步操作。
[0036]在一个实施例中,当所述同步命令中包括归类后的非移动请求和移动请求时,所述根据所述同步命令,将对所述邮件的合并后的本地操作同步到所述服务器中,包括:
[0037]根据所述同步命令,将所述非移动请求同步到所述服务器中;
[0038]在所述非移动请求同步到所述服务器中之后,将所述移动请求同步到所述服务器中。
[0039]该实施例中,服务器同步邮件时能够根据邮件在服务器上的组织形式批量同步,从而提高邮件操作的成功率。
[0040]一种邮件同步的装置,用于终端设备,包括:
[0041]建立模块,用于建立邮件的操作列表,所述操作列表用于记录在所述终端设备上对所述邮件的本地操作;
[0042]合并模块,用于将所述操作列表中预设时间段内记录的对所述邮件的本地操作进行合并;
[0043]第一发送模块,用于向服务器发送包括所述合并后的本地操作的同步命令,所述服务器用于根据所述同步命令将对所述邮件的合并后的本地操作同步到服务器中。
[0044]在一个实施例中,所述合并模块包括:
[0045]第一消除子模块,用于识别所述本地操作中是否同时存在添加邮件操作和删除邮件操作;当识别到所述本地操作中同时存在添加邮件操作和删除邮件操作时,消除所述添加邮件操作以及所述添加邮件操作的上一个或者下一个删除邮件操作,并消除所述添加邮件操作以及所述添加邮件操作的上一个或者下一个删除邮件操作之间的其他本地操作;
[0046]第二消除子模块,用于识别所述本地操作中是否存在删除邮件操作;当识别到所述本地操作中存在删除邮件操作时,消除所述删除邮件操作之前的其他本地操作;
[0047]合并子模块,用于对所述本地操作中的同类项进行合并,得到合并后的本地操作,所述同类项为添加邮件操作和移动邮件操作、多个移动邮件操作或互为相反操作的本地操作;
[0048]排序子模块,用于对所述合并后的本地操作进行排序。
[0049]在一个实施例中,所述合并子模块包括:
[0050]第一合并单元,用于当所述同类项为添加邮件操作和移动邮件操作时,将所述添加邮件操作和移动邮件操作合并为所述移动邮件操作指向的文件夹中的添加邮件操作;
[0051]第二合并单元,用于当所述同类项为多个移动邮件操作时,将所述多个移动邮件操作合并为一个移动邮件操作,所述一个移动邮件操作为将所述邮件从起始位置移动到最后一个移动邮件操作所指向的文件夹;
[0052]第三合并单元,用于当所述同类项为互为相反操作的本地操作时,消除所述互为相反操作的本地操作。
[0053]在一个实施例中,所述排序子模块包括:
[0054]判断单元,用于判断所述合并后的本地操作中,除添加邮件操作以外的其他本地操作是否在所述添加邮件操作之后进行;
[0055]第一排序单元,用于当判定所述合并后的本地操作中,除添加邮件操作以外的其他本地操作在所述添加邮件操作之后进行时,将所述合并后的本地操作中的添加邮件操作排在所有本地操作的最前;
[0056]第二排序单元,用于当判定所述合并后的本地操作中,除添加邮件操作以外的其他本地操作不是在所述添加邮件操作之后进行时,将所述合并后的本地操作中的添加邮件操作和/或移动邮件操作排在所有本地操作的最前或者最后。
[0057]在一个实施例中,所述装置还包括:
[0058]判断模块,用于判断所述合并后的本地操作中是否包含移动邮件操作;
[0059]归类模块,用于当所述合并后的本地操作中包含移动邮件操作时,将对所述邮件的本地操作归类为移动请求;当所述合并后的本地操作中不包含移动邮件操作时,将对所述邮件的本地操作归类为非移动请求;
[0060]第二发送模块,用于向服务器发送包括所述归类后的非移动请求和/或移动请求的同步命令,所述服务器用于根据所述同步命令将所述非移动请求和/或移动请求同步到服务器中,其中,所述服务器先对所述非移动请求进行同步、再对所述移动请求进行同步。
[0061]—种邮件同步的装置,用于服务器,包括:
[0062]接收模块,用于接收终端设备发送的同步命令,所述同步命令包括对所述邮件的合并后的本地操作;
[0063]同步模块,用于根据所述同步命令,将对所述邮件的合并后的本地操作同步到所述服务器中。
[0064]在一个实施例中,所述同步模块包括:
[0065]第一同步子模块,用于根据所述同步命令,将所述非移动请求同步到所述服务器中;
[0066]第二同步子模块,用于在所述非移动请求同步到所述服务器中之后,将所述移动请求同步到所述服务器中。
[0067]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0068]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
【附图说明】
[0069]附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0070]图1为本发明实施例中一种邮件同步的方法的流程图。
[0071]图2为本发明实施例中一种邮件同步的方法中步骤S12的流程图。
[0072]图3为本发明实施例中另一种邮件同步的方法的流程图。
[0073]图4为本发明实施例中另一种邮件同步的方法的流程图。
[0074]图5为本发明实施例一中一种邮件同步的方法的流程图。
[0075]图6为本发明实施例中的一种邮件同步的装置的框图。
[0076]图7为本发明实施例中的一种邮件同步的装置中合并模块的框图。
[0077]图8为本发明实施例中的一种邮件同步的装置中合并子模块的框图。
[0078]图9为本发明实施例中的另一种邮件同步的装置的框图。
[0079]图10为本发明实施例中的另一种邮件同步的装置的框图。
[0080]图11为本发明实施例中的另一种邮件同步的装置中同步模块的框图。
【具体实施方式】
[0081]以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0082]图1为本发明实施例中一种邮件同步的方法的流程图。如图1所示,该方法用于终端设备,包括以下步骤S11-S13:
[0083]步骤S11,建立邮件的操作列表,操作列表用于记录在终端设备上对邮件的本地操作。
[0084]对邮件的本地操作包括添加邮件、删除邮件、移动邮件位置、标记邮件为已读或未读、为邮件添加星标等。
[0085]步骤S12,将所述操作列表中预设时间段内记录的对邮件的本地操作进行合并。
[0086]步骤S13,向服务器发送包括合并后的本地操作的同步命令,服务器用于根据同步命令将对邮件的合并后的本地操作同步到服务器中。
[0087]每一封邮件都有各自的身份标识码,终端设备向服务器发送同步命令时,需要将邮件的身份标识码和邮件所属的文件夹的身份标识码一同发送给服务器,服务器根据邮件的身份标识码和邮件所属的文件夹的身份标识码对邮件进行定位。
[0088]例如,预设时间段设置为I分钟,则终端设备可记录I分钟之内对邮件的所有本地操作,并将该I分钟内记录的所有本地操作按照既定的规则进行合并,再将合并后的本地操作批量发送给服务器,由服务器进行与终端设备本地客户端的邮件同步。
[0089]采用本发明实施例提供的技术方案,通过将邮件的本地操作缓存在本地终端,并合并一段时间内的本地操作,进而批量上传给服务器,因此能够大大减少终端设备和服务器的交互次数,并且节省了邮件协议所占用的额外网络流量,还能够减少很多不必要的同步操作。同时,该方案一次批量同步可以存在部分成功及部分失败的状态,从而可以对部分失败的同步操作进行撤销,提高同步效率。
[0090]在一个实施例中,如图2所示,步骤S12可实施为以下步骤S121-S124:
[0091]步骤S121,识别本地操作中是否同时存在添加邮件操作和删除邮件操作;当识别到本地操作中同时存在添加邮件操作和删除邮件操作时,消除添加邮件操作以及添加邮件操作的上一个或者下一个删除邮件操作,并消除添加邮件操作以及添加邮件操作的上一个或者下一个删除邮件操作之间的其他本地操作。
[0092]如果用符号表示删除邮件操作,用符号“ + ”表示添加邮件操作,用符号表示其他本地操作,则实施步骤S121之后,可消除类似[_,*,+]序列和[+,*,-]序列的本地操作,在添加邮件操作“ + ”和删除邮件操作之间的其他本地操作可以是一个操作,也可以是多个操作。通常情况下,[_,*,+]序列即为[_,+]序列,因为一旦删除邮件,也就不会存在其他本地操作。
[0093]步骤S122,识别本地操作中是否存在删除邮件操作;当识别到本地操作中存在删除邮件操作时,消除删除邮件操作之前的其他本地操作。
[0094]如果用符号表示删除邮件操作,用符号表示其他本地操作,由于删除邮件操作之后,之前的其他本地操作也就无意义了,因此实施步骤S122即为将序列[*,-]替换成[_],也就是消除掉删除邮件操作之前的其他本地操作了。需要注意的是,这里所说的删除邮件操作之前的其他本地操作不包括添加邮件操作,且删除邮件操作不能忽略。
[0095]步骤S123,对本地操作中的同类项进行合并,得到合并后的本地操作,同类项为添加邮件操作和移动邮件操作、多个移动邮件操作或互为相反操作的本地操作。
[0096]步骤S124,对合并后的本地操作进行排序。
[0097]在一个实施例中,步骤S123可以实施为以下步骤A1-A3:
[0098]步骤Al,当同类项为添加邮件操作和移动邮件操作时,将添加邮件操作和移动邮件操作合并为移动邮件操作指向的文件夹中的添加邮件操作。例如,在一个文件夹中添加一封邮件,又将该邮件移动至另一个文件夹中,则这两项本地操作互为同类项,终端设备可将这两项本地操作合并为直接在另一个文件夹中添加该邮件,其中,另一个文件夹即为移动邮件操作指向的文件夹。
[0099]步骤A2,当同类项为多个移动邮件操作时,将多个移动邮件操作合并为一个移动邮件操作,一个移动邮件操作为将邮件从起始位置移动到最后一个移动邮件操作所指向的文件夹。例如,一封邮件的起始位置为文件夹A中,首先将该邮件由文件夹A移动至文件夹B中,再将该邮件由文件夹B移动至文件夹C中,再将该邮件由文件夹C移动至文件夹D中,一共进行了三次移动邮件操作,这三次移动邮件操作互为同类项,终端设备可将这三次移动邮件操作合并为直接将邮件从文件夹A移动至文件夹D中,即最终合并为一个移动邮件操作。
[0100]步骤A3,当同类项为互为相反操作的本地操作时,消除互为相反操作的本地操作。例如,为一封邮件添加星标,随后又取消该邮件上的星标,则这两项本地操作互为相反的操作,终端设备直接删除添加星标和删除星标的操作。
[0101 ] 在一个实施例中,步骤S124可以实施为以下步骤:判断合并后的本地操作中,除添加邮件操作以外的其他本地操作是否在添加邮件操作之后进行;当判定合并后的本地操作中,除添加邮件操作以外的其他本地操作在添加邮件操作之后进行时,将合并后的本地操作中的添加邮件操作排在所有本地操作的最前;当判定合并后的本地操作中,除添加邮件操作以外的其他本地操作不是在添加邮件操作之后进行时,将合并后的本地操作中的添加邮件操作和/或移动邮件操作排在所有本地操作的最前或者最后。
[0102]该实施例中,当合并后的本地操作中,除添加邮件操作以外的其他本地操作在添加邮件操作之后进行时,也就是说邮件进行本地操作时,先进行添加邮件的操作,再对所添加的邮件进行其他操作,这些其他本地操作是依赖于添加邮件操作进行的,因此,排序时将添加邮件操作排在所有本地操作的前面,否则服务器进行邮件同步时会因找不到邮件位置而视其他本地操作无效,导致同步失败。当判定合并后的本地操作中,除添加邮件操作以外的其他本地操作不是在添加邮件操作之后进行时,也就是说其他本地操作不依赖于添加邮件操作进行,邮件本身存储在本地客户端中,且已经与服务器进行同步,因此,排序时可将添加邮件操作排在所有本地操作的最前或者最后,当合并后的本地操作中包括移动邮件操作时,可将移动邮件操作与添加邮件操作一同排在所有本地操作的最前或者最后,移动邮件操作与其他本地操作是否依赖添加邮件操作无关。服务器接收到同步命令之后,能够根据排序好的本地操作进行邮件同步,先同步添加邮件操作,然后同步其他本地操作;或者在其他本地操作不依赖于添加邮件操作的情况下,先同步其他本地操作,再同步添加邮件操作和/或移动邮件操作。这样排序是根据邮件在服务器上的组织形式决定的。由于服务器上一个邮箱包含多个文件件,如收件箱、发件箱、草稿箱等,每个文件夹拥有一个唯一的身份标识码来标识该文件夹,同时文件夹中包含多封邮件或文件夹为空,每封邮件也都拥有一个唯一的身份识别码来标识。但邮件被添加到一个文件夹中或者从一个文件夹移动到另一个文件夹中时,服务器就会分配给该邮件一个新的身份识别码。因此,将合并后的本地操作中的添加邮件操作或移动邮件操作排在所有本地操作的最前或者最后,使得服务器能够最先同步添加邮件操作或移动邮件操作,为该邮件分配新的身份识别码之后,再同步该邮件的其他本地操作,或者在其他本地操作不依赖于添加邮件操作的情况下,最先同步该邮件的其他本地操作,最后同步添加邮件操作或移动邮件操作,并在添加邮件操作或移动邮件操作指向的文件夹中为该邮件分配新的身份识别码。
[0103]在一个实施例中,如图3所示,在执行步骤S12之后,上述方法还包括以下步骤S31-S34:
[0104]步骤S31,判断合并后的本地操作中是否包含移动邮件操作;当合并后的本地操作中不包含移动邮件操作时,执行步骤S32 ;当合并后的本地操作中包含移动邮件操作时,执行步骤S33 ;
[0105]步骤S32,将对邮件的本地操作归类为非移动请求;
[0106]步骤S33,将对邮件的本地操作归类为移动请求;
[0107]步骤S34,向服务器发送包括归类后的非移动请求和移动请求的同步命令,服务器用于根据同步命令将非移动请求和移动请求同步到服务器中,其中,服务器先对非移动请求进行同步、再对移动请求进行同步。在该步骤中,终端设备可以与服务器进行两次交互,即先向服务器发送包括非移动请求的同步命令,待服务器同步非移动请求中的本地操作之后,再向服务器发送包括移动请求的同步命令,服务器同步移动请求中的本地操作。
[0108]在该实施例中,终端设备将对邮件的本地操作进行归类,以使服务器能够根据归类后的本地操作分类进行合并,这是由邮件在服务器上的组织形式决定的。由于服务器上一个邮箱包含多个文件件,如收件箱、发件箱、草稿箱等,每个文件夹拥有一个唯一的身份标识码来标识该文件夹,同时文件夹中包含多封邮件或文件夹为空,每封邮件也都拥有一个唯一的身份识别码来标识。但邮件被添加到一个文件夹中或者从一个文件夹移动到另一个文件夹中时,服务器就会分配给该邮件一个新的身份识别码。因此,服务器先对非移动请求进行同步,再对移动请求进行同步,并在移动请求中的移动操作指向的文件夹中为邮件分配新的身份识别码,从而提高邮件操作的成功率。而如果服务器先同步移动请求,一旦同步失败(如由服务器、网络或客户端等原因造成同步失败),终端设备没有得到邮件新的身份标识码和所属文件夹的身份标识码,其他的本地操作也就无法同步成功。
[0109]图4为本发明实施例中一种邮件同步的方法的流程图。如图4所示,该方法用于服务器中,包括以下步骤S41-S42:
[0110]步骤S41,接收终端设备发送的同步命令,同步命令包括对邮件的合并后的本地操作;
[0111]步骤S42,根据同步命令,将对邮件的合并后的本地操作同步到服务器中。
[0112]在一个实施例中,当同步命令中包括归类后的非移动请求和移动请求时,步骤S42可实施为以下步骤:根据同步命令,将非移动请求同步到服务器中;在非移动请求同步到服务器中之后,将移动请求同步到服务器中。服务器对非移动请求和移动请求分别进行同步,这是由邮件在服务器上的组织形式决定的。由于服务器上一个邮箱包含多个文件夹,如收件箱、发件箱、草稿箱等,每个文件夹拥有一个唯一的身份标识码来标识该文件夹,同时文件夹中包含多封邮件或文件夹为空,每封邮件也都拥有一个唯一的身份识别码来标识。但邮件被添加到一个文件夹中或者从一个文件夹移动到另一个文件夹中时,服务器就会分配给该邮件一个新的身份识别码。因此,服务器先对非移动请求进行同步,再对移动请求进行同步,并在移动请求中的移动操作指向的文件夹中为邮件分配新的身份识别码,从而提高邮件操作的成功率。而如果服务器先同步移动请求,一旦同步失败(如由服务器、网络或客户端等原因造成同步失败),终端设备没有得到邮件新的身份标识码和所属文件夹的身份标识码,其他的本地操作也就无法同步成功。
[0113]采用该实施例的技术方案,使服务器能够对邮件合并后的本地操作进行批量同步,大大减少了终端设备和服务器的交互次数,并且节省了邮件协议所占用的额外网络流量,还能够减少很多不必要的同步操作。
[0114]图5为本发明实施例一中的一种邮件同步的方法的流程图。
[0115]实施例一
[0116]在该实施例中,终端设备可以是智能手机、个人计算机或平板电脑等可以安装邮箱客户端的智能设备。如图5所示,包括以下步骤S51-S55:
[0117]步骤S51,终端设备建立邮件的操作列表,操作列表用于记录在终端设备上对邮件的本地操作;
[0118]步骤S52,终端设备将操作列表中预设时间段内记录的对邮件的本地操作进行合并;例如,预设时间段为2分钟,则终端设备将2分钟内对邮件的本地操作缓存在终端设备的数据库中,并在记录完所有的本地操作之后,按照既定的规则对所有本地操作进行合并,该合并过程包括可消除不必要同步的本地操作、消除同类项、以及对合并后的本地操作进行排序等;
[0119]步骤S53,终端设备向服务器发送包括合并后的本地操作的同步命令;
[0120]步骤S54,服务器接收终端设备发送的同步命令;
[0121]步骤S55,服务器根据接收到的同步命令将对邮件的合并后的本地操作同步到服务器中。
[0122]采用本实施例中的技术方案,通过将邮件的本地操作缓存在本地终端,并合并一段时间内的本地操作,进而批量上传给服务器,使得服务器能够批量同步邮件的本地操作,从而大大减少终端设备和服务器的交互次数,并且节省了邮件协议所占用的额外网络流量,还能够减少很多不必要的同步操作。同时,该方案一次批量同步可以存在部分成功及部分失败的状态,从而可以对部分失败的同步操作进行撤销,提高同步效率。
[0123]对于可以将终端设备上对邮件的本地操作同步到服务器中的两个主要的邮件协议为:IMAP (Internet Mail Access Protocol,交互邮件访问协议)和 Exchange 协议。对于这两种协议来说,本发明实施例提供的邮件同步方法都是适用的。区别在于不同协议下具体的交互次数有所不同。
[0124]在IMAP协议下,非移动请求类的命令中包括的本地操作有三种:删除邮件操作、添加邮件操作和添加标记操作,而移动请求类的命令中包括的本地操作仅有移动邮件操作一种。且由于IMAP协议对邮件的操作是分文件夹进行的,因此,终端设备与服务器的交互次数与文件夹的个数有关。而在Exchange协议下,由于Exchange协议对邮件的操作不需要分文件夹进行,因此非移动请求类的命令中的本地操作都可以包含在同一个同步命令中,仅仅受同步命令的操作个数限制,因此服务器和终端设备仅需进行两次同步交互即可完成所有同步操作,即非移动请求类的同步命令交互和移动请求类的同步命令交互。由此可见,本发明实施例提供的技术方案在Exchange协议下效果更优。
[0125]图6为本发明实施例中的一种邮件同步的装置的框图。如图6所示,该装置用于终端设备,包括:
[0126]建立模块61,用于建立邮件的操作列表,操作列表用于记录在终端设备上对邮件的本地操作;
[0127]合并模块62,用于将操作列表中预设时间段内记录的对邮件的本地操作进行合并;
[0128]第一发送模块63,用于向服务器发送包括合并后的本地操作的同步命令,服务器用于根据同步命令将对邮件的合并后的本地操作同步到服务器中。
[0129]在一个实施例中,如图7所示,合并模块62包括:
[0130]第一消除子模块621,用于识别本地操作中是否同时存在添加邮件操作和删除邮件操作;当识别到本地操作中同时存在添加邮件操作和删除邮件操作时,消除添加邮件操作以及添加邮件操作的上一个或者下一个删除邮件操作,并消除添加邮件操作以及添加邮件操作的上一个或者下一个删除邮件操作之间的其他本地操作;
[0131]第二消除子模块622,用于识别本地操作中是否存在删除邮件操作;当识别到本地操作中存在删除邮件操作时,消除删除邮件操作之前的其他本地操作;
[0132]合并子模块623,用于对本地操作中的同类项进行合并,得到合并后的本地操作,同类项为添加邮件操作和移动邮件操作、多个移动邮件操作或互为相反操作的本地操作;
[0133]排序子模块624,用于对合并后的本地操作进行排序。
[0134]在一个实施例中,如图8所不,合并子模块623包括:
[0135]第一合并单元6231,用于当同类项为添加邮件操作和移动邮件操作时,将添加邮件操作和移动邮件操作合并为移动邮件操作指向的文件夹中的添加邮件操作;
[0136]第二合并单元6232,用于当同类项为多个移动邮件操作时,将多个移动邮件操作合并为一个移动邮件操作,一个移动邮件操作为将邮件从起始位置移动到最后一个移动邮件操作所指向的文件夹;
[0137]第三合并单元6233,用于当同类项为互为相反操作的本地操作时,消除互为相反操作的本地操作。
[0138]在一个实施例中,排序子模块624包括:
[0139]判断单元,用于判断所述合并后的本地操作中,除添加邮件操作以外的其他本地操作是否在所述添加邮件操作之后进行;
[0140]第一排序单元,用于当判定所述合并后的本地操作中,除添加邮件操作以外的其他本地操作在所述添加邮件操作之后进行时,将合并后的本地操作中的添加邮件操作排在所有本地操作的最前;
[0141]第二排序单元,用于当判定所述合并后的本地操作中,除添加邮件操作以外的其他本地操作不是在所述添加邮件操作之后进行时,将所述合并后的本地操作中的添加邮件操作和/或移动邮件操作排在所有本地操作的最前或者最后。
[0142]在一个实施例中,如图9所示,上述装置还包括:
[0143]判断模块64,用于判断合并后的本地操作中是否包含移动邮件操作;
[0144]归类模块65,用于当合并后的本地操作中包含移动邮件操作时,将对邮件的本地操作归类为移动请求;当合并后的本地操作中不包含移动邮件操作时,将对邮件的本地操作归类为非移动请求;
[0145]第二发送模块66,用于向服务器发送包括归类后的非移动请求和/或移动请求的同步命令,服务器用于根据同步命令将非移动请求和/或移动请求同步到服务器中,其中,服务器先对非移动请求进行同步、再对移动请求进行同步。
[0146]采用本发明实施例提供的技术方案,通过将邮件的本地操作缓存在本地终端,并合并一段时间内的本地操作,进而批量上传给服务器,因此能够大大减少终端设备和服务器的交互次数,并且节省了邮件协议所占用的额外网络流量,还能够减少很多不必要的同步操作。同时,该方案一次批量同步可以存在部分成功及部分失败的状态,从而可以对部分失败的同步操作进行撤销,提高同步效率。
[0147]图10为本发明实施例中的一种邮件同步的装置的框图。如图10所示,该装置用于服务器,包括:
[0148]接收模块101,用于接收终端设备发送的同步命令,同步命令包括对邮件的合并后的本地操作;
[0149]同步模块102,用于根据同步命令,将对邮件的合并后的本地操作同步到服务器中。
[0150]在一个实施例中,如图11所示,同步模块102包括:
[0151]第一同步子模块1021,用于根据同步命令,将非移动请求同步到服务器中;
[0152]第二同步子模块1022,用于在非移动请求同步到服务器中之后,将移动请求同步到服务器中。
[0153]采用该实施例的技术方案,使服务器能够对邮件合并后的本地操作进行批量同步,大大减少了终端设备和服务器的交互次数,并且节省了邮件协议所占用的额外网络流量,还能够减少很多不必要的同步操作。
[0154]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0155]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0156]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0157]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0158]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【主权项】
1.一种邮件同步的方法,其特征在于,用于终端设备,包括: 建立邮件的操作列表,所述操作列表用于记录在所述终端设备上对所述邮件的本地操作; 将所述操作列表中预设时间段内记录的对所述邮件的本地操作进行合并; 向服务器发送包括所述合并后的本地操作的同步命令,所述服务器用于根据所述同步命令将对所述邮件的合并后的本地操作同步到服务器中。2.根据权利要求1所述的方法,其特征在于,所述将所述操作列表中预设时间段内记录的对所述邮件的本地操作进行合并,包括:识别所述本地操作中是否同时存在添加邮件操作和删除邮件操作;当识别到所述本地操作中同时存在添加邮件操作和删除邮件操作时,消除所述添加邮件操作以及所述添加邮件操作的上一个或者下一个删除邮件操作,并消除所述添加邮件操作以及所述添加邮件操作的上一个或者下一个删除邮件操作之间的其他本地操作; 识别所述本地操作中是否存在删除邮件操作;当识别到所述本地操作中存在删除邮件操作时,消除所述删除邮件操作之前的其他本地操作; 对所述本地操作中的同类项进行合并,得到合并后的本地操作,所述同类项为添加邮件操作和移动邮件操作、多个移动邮件操作或互为相反操作的本地操作; 对所述合并后的本地操作进行排序。3.根据权利要求2所述的方法,其特征在于, 所述对所述本地操作中的同类项进行合并,得到合并后的本地操作,所述同类项为添加邮件操作和移动邮件操作、多个移动邮件操作或互为相反操作的本地操作,包括: 当所述同类项为添加邮件操作和移动邮件操作时,将所述添加邮件操作和移动邮件操作合并为所述移动邮件操作指向的文件夹中的添加邮件操作; 当所述同类项为多个移动邮件操作时,将所述多个移动邮件操作合并为一个移动邮件操作,所述一个移动邮件操作为将所述邮件从起始位置移动到最后一个移动邮件操作所指向的文件夹; 当所述同类项为互为相反操作的本地操作时,消除所述互为相反操作的本地操作。4.根据权利要求2所述的方法,其特征在于, 所述对所述合并后的本地操作进行排序,包括: 判断所述合并后的本地操作中,除添加邮件操作以外的其他本地操作是否在所述添加邮件操作之后进行; 当判定所述合并后的本地操作中,除添加邮件操作以外的其他本地操作在所述添加邮件操作之后进行时,将所述合并后的本地操作中的添加邮件操作排在所有本地操作的最、广.刖; 当判定所述合并后的本地操作中,除添加邮件操作以外的其他本地操作不是在所述添加邮件操作之后进行时,将所述合并后的本地操作中的添加邮件操作和/或移动邮件操作排在所有本地操作的最前或者最后。5.根据权利要求1所述的方法,其特征在于,所述将所述操作列表中预设时间段内记录的对所述邮件的本地操作进行合并之后,所述方法还包括: 判断所述合并后的本地操作中是否包含移动邮件操作; 当所述合并后的本地操作中包含移动邮件操作时,将对所述邮件的本地操作归类为移动请求;当所述合并后的本地操作中不包含移动邮件操作时,将对所述邮件的本地操作归类为非移动请求; 向服务器发送包括所述归类后的非移动请求和/或移动请求的同步命令,所述服务器用于根据所述同步命令将所述非移动请求和/或移动请求同步到服务器中,其中,所述服务器先对所述非移动请求进行同步、再对所述移动请求进行同步。6.一种邮件同步的方法,其特征在于,用于服务器,包括: 接收终端设备发送的同步命令,所述同步命令包括对所述邮件的合并后的本地操作; 根据所述同步命令,将对所述邮件的合并后的本地操作同步到所述服务器中。7.根据权利要求6所述的方法,其特征在于,当所述同步命令中包括归类后的非移动请求和移动请求时,所述根据所述同步命令,将对所述邮件的合并后的本地操作同步到所述服务器中,包括: 根据所述同步命令,将所述非移动请求同步到所述服务器中; 在所述非移动请求同步到所述服务器中之后,将所述移动请求同步到所述服务器中。8.一种邮件同步的装置,其特征在于,用于终端设备,包括: 建立模块,用于建立邮件的操作列表,所述操作列表用于记录在所述终端设备上对所述邮件的本地操作; 合并模块,用于将所述操作列表中预设时间段内记录的对所述邮件的本地操作进行合并; 第一发送模块,用于向服务器发送包括所述合并后的本地操作的同步命令,所述服务器用于根据所述同步命令将对所述邮件的合并后的本地操作同步到服务器中。9.根据权利要求8所述的装置,其特征在于,所述合并模块包括: 第一消除子模块,用于识别所述本地操作中是否同时存在添加邮件操作和删除邮件操作;当识别到所述本地操作中同时存在添加邮件操作和删除邮件操作时,消除所述添加邮件操作以及所述添加邮件操作的上一个或者下一个删除邮件操作,并消除所述添加邮件操作以及所述添加邮件操作的上一个或者下一个删除邮件操作之间的其他本地操作; 第二消除子模块,用于识别所述本地操作中是否存在删除邮件操作;当识别到所述本地操作中存在删除邮件操作时,消除所述删除邮件操作之前的其他本地操作; 合并子模块,用于对所述本地操作中的同类项进行合并,得到合并后的本地操作,所述同类项为添加邮件操作和移动邮件操作、多个移动邮件操作或互为相反操作的本地操作;排序子模块,用于对所述合并后的本地操作进行排序。10.根据权利要求9所述的装置,其特征在于,所述合并子模块包括: 第一合并单元,用于当所述同类项为添加邮件操作和移动邮件操作时,将所述添加邮件操作和移动邮件操作合并为所述移动邮件操作指向的文件夹中的添加邮件操作; 第二合并单元,用于当所述同类项为多个移动邮件操作时,将所述多个移动邮件操作合并为一个移动邮件操作,所述一个移动邮件操作为将所述邮件从起始位置移动到最后一个移动邮件操作所指向的文件夹; 第三合并单元,用于当所述同类项为互为相反操作的本地操作时,消除所述互为相反操作的本地操作。11.根据权利要求9所述的装置,其特征在于,所述排序子模块包括: 判断单元,用于判断所述合并后的本地操作中,除添加邮件操作以外的其他本地操作是否在所述添加邮件操作之后进行; 第一排序单元,用于当判定所述合并后的本地操作中,除添加邮件操作以外的其他本地操作在所述添加邮件操作之后进行时,将所述合并后的本地操作中的添加邮件操作排在所有本地操作的最前; 第二排序单元,用于当判定所述合并后的本地操作中,除添加邮件操作以外的其他本地操作不是在所述添加邮件操作之后进行时,将所述合并后的本地操作中的添加邮件操作和/或移动邮件操作排在所有本地操作的最前或者最后。12.根据权利要求8所述的装置,其特征在于,所述装置还包括: 判断模块,用于判断所述合并后的本地操作中是否包含移动邮件操作; 归类模块,用于当所述合并后的本地操作中包含移动邮件操作时,将对所述邮件的本地操作归类为移动请求;当所述合并后的本地操作中不包含移动邮件操作时,将对所述邮件的本地操作归类为非移动请求; 第二发送模块,用于向服务器发送包括所述归类后的非移动请求和/或移动请求的同步命令,所述服务器用于根据所述同步命令将所述非移动请求和/或移动请求同步到服务器中,其中,所述服务器先对所述非移动请求进行同步、再对所述移动请求进行同步。13.—种邮件同步的装置,其特征在于,用于服务器,包括: 接收模块,用于接收终端设备发送的同步命令,所述同步命令包括对所述邮件的合并后的本地操作; 同步模块,用于根据所述同步命令,将对所述邮件的合并后的本地操作同步到所述服务器中。14.根据权利要求13所述的装置,其特征在于,所述同步模块包括: 第一同步子模块,用于根据所述同步命令,将所述非移动请求同步到所述服务器中; 第二同步子模块,用于在所述非移动请求同步到所述服务器中之后,将所述移动请求同步到所述服务器中。
【文档编号】H04L12/58GK105897545SQ201510038837
【公开日】2016年8月24日
【申请日】2015年1月26日
【发明人】林以明
【申请人】九玉(北京)科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1