垃圾邮件处理方法及系统的制作方法

文档序号:7981585阅读:245来源:国知局
垃圾邮件处理方法及系统的制作方法
【专利摘要】一种垃圾邮件处理方法,包括如下步骤:接收被拦截的邮件;判断所述邮件的数据量是否大于阈值;如果是,以单文件的形式单独存储所述邮件;如果否,将所述邮件添加在预定文件中进行集中存储。上述垃圾邮件处理方法,通过判断邮件的数据量与阈值的关系,将邮件分为两种存储方式:邮件的数据量大于阈值的,以单文件的形式单独存储邮件;邮件的数据量不大于阈值的,将邮件添加在预定文件中进行集中存储。将邮件添加在预定文件中进行集中存储,减少了文件的数量,可以减少磁盘输入输出操作的次数,减少了邮件存储耗时。此外,还提供一种垃圾邮件处理系统。
【专利说明】垃圾邮件处理方法及系统
【技术领域】
[0001]本发明涉及计算机技术,特别是涉及一种垃圾邮件处理方法及系统。
【背景技术】
[0002]电子邮件(E-mail,又称电子函件、电邮或邮件)是指通过互联网进行书写、发送和接收信件,目的是达成发信人和收信人之间的信息交互。
[0003]随着计算机的普及,电子邮件的使用也越来越广泛。然而,电子邮件也出现了被滥用的情况,即部分用户使用电子邮件大量发送广告等垃圾邮件,使得很多收到垃圾邮件的用户不得不花很多时间清理。对此,部分邮件服务商提供了自动过滤垃圾邮件的服务,将系统自动识别为垃圾邮件的邮件单独放置到垃圾箱或是直接删除等。直接删除的方式容易导致系统错误识别为垃圾邮件的有用邮件的丢失。放置到垃圾箱中的方式由于可以被恢复,因而被广泛使用。
[0004]随着垃圾邮件数量的增加,邮件存储耗费的时间越来越长,也会导致读取供用户确认是否是垃圾邮件、恢复为正常邮件的速度越来越慢。对此,部分邮件服务提供商将高概率为垃圾邮件的电子邮件直接删除而不再存储,相对概率低一点的垃圾邮件则存储下来以备用户恢复,这样可以减少存储空间的浪费和对存储、读取邮件速度的影响。然而,这种方式还是难免会造成极个别的有用邮件被当作垃圾邮件删除。

【发明内容】

[0005]基于此,有必要针对传统的垃圾邮件处理耗时越来越长的问题,提供一种垃圾邮件处理方法。
[0006]一种垃圾邮件处理方法,包括:
[0007]接收被拦截的邮件;
[0008]判断所述邮件的数据量是否大于阈值;
[0009]如果是,以单文件的形式单独存储所述邮件;
[0010]如果否,将所述邮件添加在预定文件中进行集中存储。
[0011]此外,还有必要针对大量邮件存储耗时越来越长的问题,提供一种垃圾邮件处理系统。
[0012]一种垃圾邮件处理系统,包括:
[0013]接收模块,用于接收被拦截的邮件;
[0014]判断模块,用于判断所述邮件的数据量是否大于阈值;
[0015]第一存储模块,如果所述邮件大于阈值,以单文件的形式单独存储所述邮件;
[0016]第二存储模块,如果所述邮件不大于阈值,将所述邮件添加在预定文件中进行集中存储。
[0017]上述垃圾邮件处理方法及系统,通过判断邮件的数据量与阈值的关系,将邮件分为两种存储方式:邮件的数据量大于阈值的,以单文件的形式单独存储邮件;邮件的数据量不大于阈值的,将邮件添加在预定文件中进行集中存储。将邮件添加在预定文件中进行集中存储,减少了文件的数量,可以减少磁盘输入输出操作的次数,减少了邮件存储耗时。
【专利附图】

【附图说明】
[0018]图1为第一实施方式的垃圾邮件处理方法的流程图;
[0019]图2为第二实施方式的垃圾邮件处理方法的流程图;
[0020]图3为第三实施方式的垃圾邮件处理方法的流程图;
[0021]图4为第四实施方式的垃圾邮件处理方法的流程图;
[0022]图5为第五实施方式的垃圾邮件处理方法的流程图;
[0023]图6为第一实施方式的邮件处理系统的模块图;
[0024]图7为第二实施方式的邮件处理系统的模块图;
[0025]图8为第三实施方式的邮件处理系统的模块图。
【具体实施方式】
[0026]由于传统的垃圾邮件处理方法中,邮件存储的方式通常存储路径固定,每个邮件作为一个单独的文件,这样某一文件夹下文件数较多,对于正常邮件和垃圾邮件非常多的用户,同一文件夹下的文件也会非常多,从而影响存取的效率。并且,较多的邮件会导致较多的文件存储操作,导致磁盘效率低,进一步影响了存取的效率。
[0027]如图1所示,一实施例中的垃圾邮件处理方法,包括如下步骤:
[0028]步骤S100,接收被拦截的邮件。邮件在被反垃圾邮件系统拦截时,调用垃圾邮件处理方法提供的存储接口(SaveMail)进行被拦截邮件的临时存储,即通过上述存储接口(SaveMail)接收被反垃圾邮件系统拦截的邮件。拦截邮件的规则可以根据需要进行设定,例如根据邮件地址、关键词等拦截可能为垃圾邮件的邮件。
[0029]步骤S110,判断邮件的数据量是否大于阈值。邮件的大小是指邮件数据的大小,阈值是指预设的邮件的数据量临界值,例如512KBUMB等。通过对邮件的数据量和阈值进行比较,判断收到的邮件的数据量是否大于阈值,如果大于则进入步骤S120,如果不大于,则进入步骤S130。
[0030]步骤S120,以单文件的形式单独存储邮件。本步骤中,把邮件的数据量大于预设阈值的每个邮件(以下简称大邮件)都以单个文件的形式单独分别存储,即每个邮件单独对应一个文件。因为收到的邮件的邮件的数据量相对较大,所以每个邮件都以单一文件的形式分别存储,便于管理。
[0031]步骤S130,将邮件添加在预定文件中进行集中存储。预定文件是指预先设定的用来集中存储大小小于阈值的邮件(以下简称小邮件)的文件。例如,收到的邮件Ml经判断小于512KB,则将邮件Ml添加到某一预定文件Fl中,随后如果收到邮件M2经判断小于512KB时,可以再将邮件M2添加到该预定文件Fl中。这样实现了将邮件Ml和邮件M2集中存储在预定文件Fl中。也就是说,集中存储是将多个邮件集中存储到一个文件中,当然,预定文件的数量也可以不止一个,只要预定文件的数量大于邮件的数量即可达到集中存储的目的。预定文件可以是Hash桶文件(哈希桶文件)、打包文件或是压缩文件等。在进行添加存储操作时,可以用0_APPEND的方式(以追加的方式打开文件,每次写之前,都将标志位移动到文件的末端)在预定文件末位添加此次添加的邮件的大小及邮件的内容数据,当然也可以只在预定文件末位添加邮件内容数据,并记录邮件的起始和结束标记。
[0032]上述垃圾邮件处理方法,通过判断邮件的数据量与阈值的关系,将邮件分为两种存储方式:邮件的数据量大于阈值的,以单文件的形式单独存储邮件;邮件的数据量不大于阈值的,将邮件添加在预定文件中进行集中存储。将邮件添加在预定文件中进行集中存储,减少了文件的数量,可以减少磁盘输入输出操作的次数,减少了邮件存储耗时。
[0033]如图2及图3所示,在其中一个实施例中,还包括以邮件的标识码进行映射获得路径的步骤(S102、S112或S114)。步骤S102在步骤SllO之前,不管是大邮件还是小邮件,映射路径的方法相同;步骤S112或S114在步骤SllO之后,可以根据大邮件和小邮件制定不同的映射路径的方法。每个邮件在接收时都会有一个标识码所标识,邮件的标识码通常是唯一的(又可以称为唯一索引为消息id,MeSSageID),并且通常邮件的标识码中包括了邮件的投递时间信息,格式为size_t类型,在存储、读取、删除邮件时都会根据邮件的标识码对邮件进行操作。存储路径可以通过以邮件的标识码进行映射获得,先把标识码通过一个Hash函数计算,转换得到文件存储路径,所述路径包括储存邮件文件的各级文件夹名称。在以单文件的形式单独存储邮件的步骤S120中,获得路径后,将邮件以单文件的形式单独存储在所述路径下,并且可以以邮件的标识码作为文件名存储文件,保证了存储邮件的唯一性;在将邮件添加在预定文件中进行集中存储的步骤S130中,将邮件添加在上述路径下的预定文件中。由于采用了映射的方法,可以通过映射规则的设定,使得不同的邮件映射得到的路径不同,从而使得邮件的存储位置充分散列,即在同一文件夹下不会有过多的邮件,提高存取的速度。
[0034]在有些具体的应用中,标识码包含有日期信息,上述以邮件的标识码进行映射获得存储所述邮件的路径的步骤S102、S112或S114中,可以将日期信息作为路径的一部分。例如,收到的邮件携带的标识码为mx82tl332829582trzqgfrcg,其中1332829582为日期信息可以转化为对应的日期20120327。当然,在其他实施例中,标识码中可以直接包含不需要转化的日期信息。假设标识码通过Hash算法映射到磁盘号为09,子目录为m的路径,将日期作为上述路径的一部分得到的存储路径为,/ BASE_DIR / 09/m/201203/27或/ BASE_DIR/09/m/2012/03/27等,其中BASE_DIR为基础存储目录。通过将日期信息作为路径的一部分,可以进一步散列需要存储的文件,得到的文件存储路径能有效的提高文件存取的速度,而且方便过期文件的清理工作。例如,对于超过邮件拦截恢复期限(3天、5天、10天等)的文件,清理程序可以根据路径中携带的日期信息,直接清理整个目录。
[0035]通常,邮件的标识码除了包含有日期信息外,还包含有非日期信息,上述邮件的标识码进行映射获得存储所述邮件的路径的步骤S102、S112或S114中,还可以将非日期信息中的部分或全部作为所述路径的一部分。仍然以标识码mX82tl332829582trZqgfrcg为例进行说明,把后4位字符“frcg”提取出来,作为邮件存储路径的一部分,例如可以是“/frcg/”或者“/fr/cg/”,从而得到最终的邮件存储路径/ BASE_DIR/09 / m/201203/27/frcg/或/ BASE_DIR / 09 / m/201203/27/fr/cg。把邮件标识码中非日期信息提取出来作为邮件存储路径中的一部分,可以使邮件文件充分散列,避免一个文件夹下文件数量过多、导致文件检索效率变低。除了提取标识码中的后四位外,也可以提取后一位、后两位或是中间的几位等,这些都可以根据需要进行设定。此外,也可以不将非日期信息作为路径的一部分,例如对于小邮件的存储来说,由于大量的小邮件已经通过添加在预定文件中进行集中存储的方式,大大减少了需要存储的文件的数量,因此,可以不需要进一步的散列,也就是不需要将非日期信息作为路径的一部分,此时步骤SI 12和SI 14并不完全相同。
[0036]在其他实施例中,除了通过映射的方式获得路径外,还可以对每个文件夹存储的文件或文件夹数量进行限定,当达到限定数量时,即更换存储路径,也可避免在同一文件夹下存储过多的邮件,提高存取的速度。
[0037]如图4所示,为了在存储邮件后能够快速的读取邮件,上述垃圾邮件处理方法还包括如下步骤:
[0038]步骤S122,本步骤位于步骤SllO之后,位于步骤S120之前或之后均可,即如果判断邮件大于阈值,在指向文件中与邮件的标识码对应的标识位设置标识邮件以单文件的形式单独存储。指向文件可以是Hash表文件,记录了邮件的标识码对应的标识位,在标识位设置有用以标识邮件的存储形式为以大邮件的形式存储的数值,例如标识位为O。在读取邮件时,根据标识码找到标识位,再根据标识位判断邮件的存储形式,有区别的采取相应的邮件读取方法。例如如果读取到的标识位为0,表明邮件是以单文件的形式单独存储的,则可以根据标识码映射得到路径,在该路径下读取邮件等。当然,也可以直接在指向文件中直接存储步骤SI 12中映射获得的路径。
[0039]步骤S132,本步骤位于步骤SllO之后,位于步骤S130之前或之后均可,即如果判断邮件不大于阈值,在指向文件中与邮件的标识码对应的标识位设置标识邮件以集中存储的形式存储、在指向文件中设置存储路径与在预定文件中的存储位置。指向文件可以是Hash表文件,记录了邮件的标识码对应的标识位,在标识位设置有用以标识邮件的存储形式为集中存储的数值,例如标识位为I。在指向文件中还保存有存储该邮件的预定文件的路径,以及对应邮件在预定文件中的存储位置。在读取邮件时,根据标识码找到标识位,再根据标识位判断邮件的存储形式,有区别的采取相应的邮件读取方法。在读取邮件时,就不需要再计算预定文件的路径和邮件的存储地址了,直接把指向文件读入计算机内存,在内存中高速检索,获取邮件标识码对应的预定文件地址和在预定文件中的存储位置,存储位置可以是预定文件数据段中的偏移地址。
[0040]以下结合更为具体的实施例对上述垃圾邮件处理方法进行更为详细的说明,如图5所示,该垃圾邮件处理方法包括如下步骤:
[0041]步骤S500,接收被拦截的邮件。每个邮件在接收时都会有一个标识码所标识,邮件的标识码通常是唯一的(又可以称为唯一索引为消息id,MeSSageID),并且通常邮件的标识码中包括了邮件的投递时间信息,格式为size_t类型,在存储、读取、删除邮件时都会根据邮件的标识码对邮件进行操作。除了邮件的标识码外,在接收被拦截的邮件时还可以获得邮件内容和邮件的数据量等信息。
[0042]步骤S510,判断邮件的数据量是否大于阈值。邮件的大小是指邮件数据的大小,阈值是指预设的邮件的数据量临界值,例如512KBUMB等,通过对邮件的数据量和预设的阈值进行比较,判断收到的邮件的数据量是否大于阈值,如果大于则进入步骤S520,如果不大于,则进入步骤S550。
[0043]步骤S520,以邮件的标识码进行映射获得路径。存储路径可以通过以邮件的标识码进行映射获得,先把标识码通过一个Hash函数计算,转换得到文件存储路径,所述路径包括储存邮件文件的各级文件夹名称。例如,收到的邮件携带的标识码为mx82tl332829582trzqgfrcg,其中 1332829582 为日期信息,mx82t、trzqgfrcg 为非日期信息,1332829582可以转化为对应的日期20120327。假设标识码通过Hash算法映射到磁盘号为09,子目录为m的路径,将日期信息和非日期信息中的一部分作为上述路径的一部分得到的存储路径为,/ BASE_DIR / 09 / m/201203/27/fr/cg,其中BASE_DIR为基础存储目录。由于采用了映射的方法,可以通过映射规则的设定,使得不同的邮件映射得到的路径不同,从而使得邮件的存储位置充分散列,即在同一文件夹下不会有过多的邮件,提高存取的速度。通过将日期信息作为路径的一部分,可以进一步散列需要存储的文件,得到的文件存储路径能有效的提高文件存取的速度,而且方便过期文件的清理工作。例如,对于超过邮件拦截恢复期限(3天、5天、10天等)的文件,清理程序可以根据路径中携带的日期信息,直接清理整个目录。
[0044]步骤S530,以单文件的形式单独存储邮件。本步骤中,把大邮件都以单个文件的形式单独分别存储,即每个邮件单独对应一个文件存储到步骤S520获得的路径中,当然,如果不同邮件获得的路径相同,可以多个邮件对应的文件存储在相同的目录中。可以以邮件的标识码作为文件名存储文件,保证了存储邮件的唯一性。因为收到的邮件的数据量相对较大,所以每个邮件都以单一文件的形式分别存储,便于管理。
[0045]步骤S540,在指向文件中与邮件的标识码对应的标识位设置标识邮件以单文件的形式单独存储。指向文件可以是Hash表文件,记录了邮件的标识码对应的标识位,在标识位设置有用以标识邮件的存储形式为以大邮件的形式存储的数值,例如标识位为O。在读取邮件时,根据标识码找到标识位,再根据标识位判断邮件的存储形式,有区别的采取相应的邮件读取方法。例如如果读取到的标识位为0,表明邮件是以单文件的形式单独存储的,则可以根据标识码映射得到路径,在该路径下读取邮件等。当然,也可以直接在指向文件中直接存储步骤S520中映射获得的路径。
[0046]如果步骤S510的判断结果为否,则进入步骤S550,以邮件的标识码进行映射获得路径。步骤S550与步骤S520相似,只是基础存储目录可以不同或者不将非日期信息作为路径的一部分。因为对于小邮件的存储来说,由于大量的小邮件已经通过添加在预定文件中进行集中存储的方式,大大减少了需要存储的文件的数量,因此,可以不需要进一步的散列,也就是不需要将非日期信息作为路径的一部分。需要特别说明的是,步骤S550与步骤S520也可以完全相同。
[0047]步骤S560,将邮件添加在预定文件中进行集中存储。预定文件是指预先设定的用来集中存储小邮件的文件。例如,收到的邮件Ml经判断小于512KB,则将邮件Ml添加到某一预定文件Fl中,随后如果收到邮件M2经判断小于512KB时,可以再将邮件M2添加到该预定文件Fl中。这样实现了将邮件Ml和邮件M2集中存储在预定文件Fl中。预定文件可以是Hash桶文件(哈希桶文件)、打包文件或是压缩文件等。在进行添加存储操作时,可以用0_APPEND的方式(以追加的方式打开文件,每次写之前,都将标志位移动到文件的末端)在预定文件末位添加邮件的数据量、邮件内容数据,当然也可以只在预定文件末位添加邮件内容数据,并记录邮件的起始和结束标记。
[0048]步骤S570,在指向文件中与邮件的标识码对应的标识位设置标识邮件以集中存储的形式存储、在指向文件中设置存储路径与在预定文件中的存储位置。指向文件可以是Hash表文件,记录了邮件的标识码对应的标识位,在标识位设置有用以标识邮件的存储形式为集中存储的数值,例如标识位为I。在指向文件中还保存有存储该邮件的预定文件的路径,以及对应邮件在预定文件中的存储位置。在读取邮件时,根据标识码找到标识位,再根据标识位判断邮件的存储形式,有区别的采取相应的邮件读取方法。在读取邮件时,就不需要再计算预定文件的路径和邮件的存储地址了,直接把指向文件读入计算机内存,在内存中高速检索,获取邮件标识码对应的预定文件地址和在预定文件中的存储位置,存储位置可以是预定文件数据段中的偏移地址。
[0049]上述垃圾邮件处理方法,通过判断邮件的数据量与阈值的关系,将邮件分为两种存储方式:邮件的数据量大于阈值的,以单文件的形式单独存储邮件;邮件的数据量不大于阈值的,将邮件添加在预定文件中进行集中存储。将邮件添加在预定文件中进行集中存储,减少了文件的数量,可以减少磁盘输入输出操作的次数,减少了邮件存储耗时。同时以日期信息作为存储的路径,一方面便于充分散列需要存储的文件,另一方面也便于集中以日期为单位进行邮件的清理。通过指向文件的方式记录邮件的存储方式,可以快速读取邮件。
[0050]反垃圾邮件系统拦截到被认为是垃圾邮件的邮件时,调用上述垃圾邮件处理方法提供的存储接口(SaveMail)进行被拦截邮件的临时存储;上述垃圾邮件处理方法接收被拦截的邮件并按照上述过程进行被拦截邮件的存储;当用户需要恢复被拦截的邮件时,调用上述垃圾邮件处理方法提供的邮件读取接口(ReadMail),完成被拦截邮件的读取和转存:在读取邮件时,根据标识码找到标识位,再根据标识位判断邮件的存储形式,有区别的采取相应的邮件读取方法。例如如果读取到的标识位为0,表明邮件是以单文件的形式单独存储的,则可以根据标识码映射得到路径,在该路径下读取邮件;如果读取到的标识位为1,表明邮件是以添加在预定文件中进行集中存储的,获取邮件标识码对应的预定文件地址和在预定文件中的数据段中的偏移地址,读取相应的数据以便进行邮件的恢复。
[0051]此外,如图6所示,本实施例提供了一种垃圾邮件处理系统,包括接收模块、判断模块、第一存储模块及第二存储模块。
[0052]接收模块用于接收被拦截的邮件。邮件在被反垃圾邮件系统拦截时,调用垃圾邮件处理系统提供的存储接口(SaveMail)进行被拦截邮件的临时存储,即通过上述存储接口(SaveMail)接收被反垃圾邮件系统拦截的邮件。拦截邮件的规则可以根据需要进行设定,例如根据邮件地址、关键词等拦截可能为垃圾邮件的邮件。
[0053]判断模块用于判断所述邮件的数据量是否大于阈值。邮件的大小是指邮件数据的大小,阈值是指预设的邮件的数据量临界值,例如512KBUMB等,通过对邮件的数据量和预设的阈值进行比较,判断收到的邮件的数据量是否大于阈值,如果大于则指令第一存储模块进行存储,如果不大于,则指令第二存储模块进行存储。
[0054]如果判断模块判断邮件大于阈值,第一存储模块以单文件的形式单独存储邮件。把邮件的数据量大于预设阈值的每个邮件(以下简称大邮件)都以单个文件的形式单独分别存储,即每个邮件单独对应一个文件。因为收到的邮件的数据量相对较大,所以每个邮件都以单一文件的形式分别存储,便于管理。
[0055]如果判断模块判断邮件不大于阈值,第二存储模块将邮件添加在预定文件中进行集中存储。预定文件是指预先设定的用来集中存储大小小于阈值的邮件(以下简称小邮件)的文件。例如,收到的邮件Ml经判断小于512KB,则将邮件Ml添加到某一预定文件Fl中,随后如果收到邮件M2经判断小于512KB时,可以再将邮件M2添加到该预定文件Fl中。这样实现了将邮件Ml和邮件M2集中存储在预定文件Fl中。也就是说,集中存储是将多个邮件集中存储到一个文件中,当然,预定文件的数量也可以不止一个,只要预定文件的数量大于邮件的数量即可达到集中存储的目的。预定文件可以是Hash桶文件(哈希桶文件)、打包文件或是压缩文件等。在进行添加存储操作时,可以用0_APPEND的方式(以追加的方式打开文件,每次写之前,都将标志位移动到文件的末端)在预定文件末位添加此次添加的邮件的数据量及邮件的内容数据,当然也可以只在预定文件末位添加邮件内容数据,并记录邮件的起始和结束标记。
[0056]上述垃圾邮件处理系统,通过判断邮件的数据量与阈值的关系,将邮件分为两种存储方式:邮件的数据量大于阈值的,以单文件的形式单独存储邮件;邮件的数据量不大于阈值的,将邮件添加在预定文件中进行集中存储。将邮件添加在预定文件中进行集中存储,减少了文件的数量,可以减少磁盘输入输出操作的次数,减少了邮件存储耗时。
[0057]如图7所示,在其中一个实施例中,垃圾邮件处理系统还包括以邮件的标识码进行映射获得路径的路径模块。每个邮件在接收时都会有一个标识码所标识,邮件的标识码通常是唯一的(又可以称为唯一索引为消息id,MeSSageID),并且通常邮件的标识码中包括了邮件的投递时间信息,格式为size_t类型,在存储、读取、删除邮件时都会根据邮件的标识码对邮件进行操作。路径模块可以通过以邮件的标识码进行映射获得存储路径,先把标识码通过一个Hash函数计算,转换得到文件存储路径,所述路径包括储存邮件文件的各级文件夹名称。路径模块获得路径后,第一存储模块将邮件以单文件的形式单独存储在所述路径下,并且可以以邮件的标识码作为文件名存储文件,保证了存储邮件的唯一性;第二存储模块将邮件添加在上述路径下的预定文件中。由于采用了映射的方法,可以通过映射规则的设定,使得不同的邮件映射得到的路径不同,从而使得邮件的存储位置充分散列,即在同一文件夹下不会有过多的邮件,提高存取的速度。
[0058]在有些具体的应用中,标识码包含有日期信息,上述路径模块以邮件的标识码进行映射获得存储所述邮件的路径的过程中,可以将日期信息作为路径的一部分。例如,收到的邮件携带的标识码为mx82tl332829582trzqgfrcg,其中1332829582为日期信息可以转化为对应的日期20120327。当然,在其他实施例中,标识码中可以直接包含不需要转化的日期信息。假设标识码通过Hash算法映射到磁盘号为09,子目录为m的路径,将日期作为上述路径的一部分得到的存储路径为,/ BASE_DIR/09/m/201203/27或/ BASE_DIR / 09/m/2012/03/27等,其中BASE_DIR为基础存储目录。通过将日期信息作为路径的一部分,可以进一步散列需要存储的文件,得到的文件存储路径能有效的提高文件存取的速度,而且方便过期文件的清理工作。例如,对于超过邮件拦截恢复期限(3天、5天、10天等)的文件,清理程序可以根据路径中携带的日期信息,直接清理整个目录。
[0059]通常,邮件的标识码除了包含有日期信息外,还包含有非日期信息,上述路径模块以邮件的标识码进行映射获得存储所述邮件的路径的过程中,还可以将非日期信息中的部分或全部作为所述路径的一部分。仍然以标识码mx82tl332829582trzqgfrcg为例进行说明,把后4位字符“frcg”提取出来,作为邮件存储路径的一部分,例如可以是“/frcg/”或者“/fr/cg/”,从而得到最终的邮件存储路径/ BASE_DIR / 09 / m/201203/27/frcg/或/BASE_DIR / 09 / m/201203/27/fr/cg。把邮件标识码中非日期信息提取出来作为邮件存储路径中的一部分,可以使邮件文件充分散列,避免一个文件夹下文件数量过多、导致文件检索效率变低。除了提取标识码中的后四位外,也可以提取后一位、后两位或是中间的几位等,这些都可以根据需要进行设定。此外,也可以不将非日期信息作为路径的一部分,例如对于小邮件的存储来说,由于大量的小邮件已经通过添加在预定文件中进行集中存储的方式,大大减少了需要存储的文件的数量,因此,可以不需要进一步的散列,也就是不需要将非日期信息作为路径的一部分。
[0060]在其他实施例中,路径模块除了通过映射的方式获得路径外,还可以对每个文件夹存储的文件或文件夹数量进行限定,当达到限定数量时,即更换存储路径,也可避免在同一文件夹下存储过多的邮件,提高存取的速度。
[0061]如图8所示,为了在存储邮件后能够快速的读取邮件,上述垃圾邮件处理系统还包括第一指向模块及第二指向模块。
[0062]如果邮件大于阈值,第一指向模块在指向文件中与邮件的标识码对应的标识位设置标识邮件以单文件的形式单独存储。指向文件可以是Hash表文件,记录了邮件的标识码对应的标识位,在标识位设置有用以标识邮件的存储形式为以大邮件的形式存储的数值,例如标识位为O。在读取邮件时,根据标识码找到标识位,再根据标识位判断邮件的存储形式,有区别的采取相应的邮件读取方法。例如如果读取到的标识位为0,表明邮件是以单文件的形式单独存储的,则可以根据标识码映射得到路径,在该路径下读取邮件等。当然,也可以直接在指向文件中直接存储路径模块映射获得的路径。
[0063]如果邮件不大于阈值,第二指向模块在指向文件中与邮件的标识码对应的标识位设置标识邮件以集中存储的形式存储、在指向文件中设置存储路径与在预定文件中的存储位置。指向文件可以是Hash表文件,记录了邮件的标识码对应的标识位,在标识位设置有用以标识邮件的存储形式为集中存储的数值,例如标识位为I。在指向文件中还保存有存储该邮件的预定文件的路径,以及对应邮件在预定文件中的存储位置。在读取邮件时,根据标识码找到标识位,再根据标识位判断邮件的存储形式,有区别的采取相应的邮件读取方法。在读取邮件时,就不需要再计算预定文件的路径和邮件的存储地址了,直接把指向文件读入计算机内存,在内存中高速检索,获取邮件标识码对应的预定文件地址和在预定文件中的存储位置,存储位置可以是预定文件数据段中的偏移地址。
[0064]上述垃圾邮件处理系统,通过判断邮件的数据量与阈值的关系,将邮件分为两种存储方式:邮件的数据量大于阈值的,以单文件的形式单独存储邮件;邮件的数据量不大于阈值的,将邮件添加在预定文件中进行集中存储。将邮件添加在预定文件中进行集中存储,减少了文件的数量,可以减少磁盘输入输出操作的次数,减少了邮件存储耗时。同时以日期信息作为存储的路径,一方面便于充分散列需要存储的文件,另一方面也便于集中以日期为单位进行邮件的清理。通过指向文件的方式记录邮件的存储方式,可以快速读取邮件。
[0065]反垃圾邮件系统拦截到被认为是垃圾邮件的邮件时,调用上述垃圾邮件处理系统提供的存储接口(SaveMail)进行被拦截邮件的临时存储;上述垃圾邮件处理系统接收被拦截的邮件并按照上述过程进行被拦截邮件的存储;当用户需要恢复被拦截的邮件时,调用上述垃圾邮件处理系统提供的邮件读取接口(ReadMail),完成被拦截邮件的读取和转存:在读取邮件时,根据标识码找到标识位,再根据标识位判断邮件的存储形式,有区别的采取相应的邮件读取方法。例如如果读取到的标识位为O,表明邮件是以单文件的形式单独存储的,则可以根据标识码映射得到路径,在该路径下读取邮件;如果读取到的标识位为1,表明邮件是以添加在预定文件中进行集中存储的,获取邮件标识码对应的预定文件地址和在预定文件中的数据段中的偏移地址,读取相应的数据以便进行邮件的恢复。
[0066]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种垃圾邮件处理方法,其特征在于,包括: 接收被拦截的邮件; 判断所述邮件的数据量是否大于阈值; 如果是,以单文件的形式单独存储所述邮件; 如果否,将所述邮件添加在预定文件中进行集中存储。
2.根据权利要求1所述的垃圾邮件处理方法,其特征在于,还包括以所述邮件的标识码进行映射获得路径的步骤,所述以单文件的形式单独存储所述邮件的步骤中,将所述邮件以单文件的形式单独存储在所述路径下;所述将所述邮件添加在预定文件中进行集中存储的步骤中,将所述邮件添加在所述路径下的预定文件中。
3.根据权利要求2所述的垃圾邮件处理方法,其特征在于,所述标识码包含日期信息,所述以所述邮件的标识码进行映射获得存储所述邮件的路径的步骤中将所述日期信息作为所述路径的一部分。
4.根据权利要求3所述的垃圾邮件处理方法,其特征在于,所述标识码还包含非日期信息,所述以所述邮件的标识码进行映射获得存储所述邮件的路径的步骤中将所述非日期信息中的部分或全部作为所述路径的一部分。
5.根据权利要求1至4中任意一项所述的垃圾邮件处理方法,其特征在于, 如果判断邮件大于阈值,还包括在指向文件中与所述邮件的标识码对应的标识位设置标识所述邮件以单文件的形式单独存储的步骤; 如果判断邮件不大于阈值,还包括在所述指向文件中与所述邮件的标识码对应的标识位设置标识所述邮件以集中存储的形式存储、在所述指向文件中设置存储路径与在所述预定文件中的存储位置的步骤。
6.一种垃圾邮件处理系统,其特征在于,包括: 接收模块,用于接收被拦截的邮件; 判断模块,用于判断所述邮件的数据量是否大于阈值; 第一存储模块,如果所述邮件大于阈值,以单文件的形式单独存储所述邮件; 第二存储模块,如果所述邮件不大于阈值,将所述邮件添加在预定文件中进行集中存储。
7.根据权利要求6所述的垃圾邮件处理系统,其特征在于,还包括以所述邮件的标识码进行映射获得路径的路径模块,所述第一存储模块将所述邮件以单文件的形式单独存储在所述路径下;所述第二存储模块将所述邮件添加在所述路径下的预定文件中。
8.根据权利要求7所述的垃圾邮件处理系统,其特征在于,所述路径模块将所述标识码中的日期信息作为所述路径的一部分。
9.根据权利要求8所述的垃圾邮件处理系统,其特征在于,所述路径模块将所述标识码中的部分或全部非日期信息作为所述路径的一部分。
10.根据权利要求6至9中任意一项所述的垃圾邮件处理系统,其特征在于,还包括: 第一指向模块,如果所述邮件大于阈值,在指向文件中与所述邮件的标识码对应的标识位设置标识所述邮件以单文件的形式单独存储; 第二指向模块,如果所述邮件不大于阈值,在所述指向文件中与所述邮件的标识码对应的标识位设置标识所述邮件以集中存储的形式存储、在所述指向文件中设置存储路径与在所述预定文件中的存储·位置。
【文档编号】H04L12/58GK103580989SQ201210271378
【公开日】2014年2月12日 申请日期:2012年7月31日 优先权日:2012年7月31日
【发明者】黄铁鸣, 文琛, 金烈胜 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1