CN103580989B - 垃圾邮件处理方法及系统 - Google Patents
垃圾邮件处理方法及系统 Download PDFInfo
- Publication number
- CN103580989B CN103580989B CN201210271378.6A CN201210271378A CN103580989B CN 103580989 B CN103580989 B CN 103580989B CN 201210271378 A CN201210271378 A CN 201210271378A CN 103580989 B CN103580989 B CN 103580989B
- Authority
- CN
- China
- Prior art keywords
- file
- path
- identification code
- threshold value
- 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
Abstract
一种垃圾邮件处理方法,包括如下步骤:接收被拦截的邮件;判断所述邮件的数据量是否大于阈值;如果是,以单文件的形式单独存储所述邮件;如果否,将所述邮件添加在预定文件中进行集中存储。上述垃圾邮件处理方法,通过判断邮件的数据量与阈值的关系,将邮件分为两种存储方式:邮件的数据量大于阈值的,以单文件的形式单独存储邮件;邮件的数据量不大于阈值的,将邮件添加在预定文件中进行集中存储。将邮件添加在预定文件中进行集中存储,减少了文件的数量,可以减少磁盘输入输出操作的次数,减少了邮件存储耗时。此外,还提供一种垃圾邮件处理系统。
Description
技术领域
本发明涉及计算机技术,特别是涉及一种垃圾邮件处理方法及系统。
背景技术
电子邮件(E-mail,又称电子函件、电邮或邮件)是指通过互联网进行书写、发送和接收信件,目的是达成发信人和收信人之间的信息交互。
随着计算机的普及,电子邮件的使用也越来越广泛。然而,电子邮件也出现了被滥用的情况,即部分用户使用电子邮件大量发送广告等垃圾邮件,使得很多收到垃圾邮件的用户不得不花很多时间清理。对此,部分邮件服务商提供了自动过滤垃圾邮件的服务,将系统自动识别为垃圾邮件的邮件单独放置到垃圾箱或是直接删除等。直接删除的方式容易导致系统错误识别为垃圾邮件的有用邮件的丢失。放置到垃圾箱中的方式由于可以被恢复,因而被广泛使用。
随着垃圾邮件数量的增加,邮件存储耗费的时间越来越长,也会导致读取供用户确认是否是垃圾邮件、恢复为正常邮件的速度越来越慢。对此,部分邮件服务提供商将高概率为垃圾邮件的电子邮件直接删除而不再存储,相对概率低一点的垃圾邮件则存储下来以备用户恢复,这样可以减少存储空间的浪费和对存储、读取邮件速度的影响。然而,这种方式还是难免会造成极个别的有用邮件被当作垃圾邮件删除。
发明内容
基于此,有必要针对传统的垃圾邮件处理耗时越来越长的问题,提供一种垃圾邮件处理方法。
一种垃圾邮件处理方法,包括:
接收被拦截的邮件;
判断所述邮件的数据量是否大于阈值;
如果是,以单文件的形式单独存储所述邮件;
如果否,将所述邮件添加在预定文件中进行集中存储。
此外,还有必要针对大量邮件存储耗时越来越长的问题,提供一种垃圾邮件处理系统。
一种垃圾邮件处理系统,包括:
接收模块,用于接收被拦截的邮件;
判断模块,用于判断所述邮件的数据量是否大于阈值;
第一存储模块,如果所述邮件大于阈值,以单文件的形式单独存储所述邮件;
第二存储模块,如果所述邮件不大于阈值,将所述邮件添加在预定文件中进行集中存储。
上述垃圾邮件处理方法及系统,通过判断邮件的数据量与阈值的关系,将邮件分为两种存储方式:邮件的数据量大于阈值的,以单文件的形式单独存储邮件;邮件的数据量不大于阈值的,将邮件添加在预定文件中进行集中存储。将邮件添加在预定文件中进行集中存储,减少了文件的数量,可以减少磁盘输入输出操作的次数,减少了邮件存储耗时。
附图说明
图1为第一实施方式的垃圾邮件处理方法的流程图;
图2为第二实施方式的垃圾邮件处理方法的流程图;
图3为第三实施方式的垃圾邮件处理方法的流程图;
图4为第四实施方式的垃圾邮件处理方法的流程图;
图5为第五实施方式的垃圾邮件处理方法的流程图;
图6为第一实施方式的邮件处理系统的模块图;
图7为第二实施方式的邮件处理系统的模块图;
图8为第三实施方式的邮件处理系统的模块图。
具体实施方式
由于传统的垃圾邮件处理方法中,邮件存储的方式通常存储路径固定,每个邮件作为一个单独的文件,这样某一文件夹下文件数较多,对于正常邮件和垃圾邮件非常多的用户,同一文件夹下的文件也会非常多,从而影响存取的效率。并且,较多的邮件会导致较多的文件存储操作,导致磁盘效率低,进一步影响了存取的效率。
如图1所示,一实施例中的垃圾邮件处理方法,包括如下步骤:
步骤S100,接收被拦截的邮件。邮件在被反垃圾邮件系统拦截时,调用垃圾邮件处理方法提供的存储接口(SaveMail)进行被拦截邮件的临时存储,即通过上述存储接口(SaveMail)接收被反垃圾邮件系统拦截的邮件。拦截邮件的规则可以根据需要进行设定,例如根据邮件地址、关键词等拦截可能为垃圾邮件的邮件。
步骤S110,判断邮件的数据量是否大于阈值。邮件的大小是指邮件数据的大小,阈值是指预设的邮件的数据量临界值,例如512KB、1MB等。通过对邮件的数据量和阈值进行比较,判断收到的邮件的数据量是否大于阈值,如果大于则进入步骤S120,如果不大于,则进入步骤S130。
步骤S120,以单文件的形式单独存储邮件。本步骤中,把邮件的数据量大于预设阈值的每个邮件(以下简称大邮件)都以单个文件的形式单独分别存储,即每个邮件单独对应一个文件。因为收到的邮件的邮件的数据量相对较大,所以每个邮件都以单一文件的形式分别存储,便于管理。
步骤S130,将邮件添加在预定文件中进行集中存储。预定文件是指预先设定的用来集中存储大小小于阈值的邮件(以下简称小邮件)的文件。例如,收到的邮件M1经判断小于512KB,则将邮件M1添加到某一预定文件F1中,随后如果收到邮件M2经判断小于512KB时,可以再将邮件M2添加到该预定文件F1中。这样实现了将邮件M1和邮件M2集中存储在预定文件F1中。也就是说,集中存储是将多个邮件集中存储到一个文件中,当然,预定文件的数量也可以不止一个,只要预定文件的数量大于邮件的数量即可达到集中存储的目的。预定文件可以是Hash桶文件(哈希桶文件)、打包文件或是压缩文件等。在进行添加存储操作时,可以用O_APPEND的方式(以追加的方式打开文件,每次写之前,都将标志位移动到文件的末端)在预定文件末位添加此次添加的邮件的大小及邮件的内容数据,当然也可以只在预定文件末位添加邮件内容数据,并记录邮件的起始和结束标记。
上述垃圾邮件处理方法,通过判断邮件的数据量与阈值的关系,将邮件分为两种存储方式:邮件的数据量大于阈值的,以单文件的形式单独存储邮件;邮件的数据量不大于阈值的,将邮件添加在预定文件中进行集中存储。将邮件添加在预定文件中进行集中存储,减少了文件的数量,可以减少磁盘输入输出操作的次数,减少了邮件存储耗时。
如图2及图3所示,在其中一个实施例中,还包括以邮件的标识码进行映射获得路径的步骤(S102、S112或S114)。步骤S102在步骤S110之前,不管是大邮件还是小邮件,映射路径的方法相同;步骤S112或S114在步骤S110之后,可以根据大邮件和小邮件制定不同的映射路径的方法。每个邮件在接收时都会有一个标识码所标识,邮件的标识码通常是唯一的(又可以称为唯一索引为消息id,MessageID),并且通常邮件的标识码中包括了邮件的投递时间信息,格式为size_t类型,在存储、读取、删除邮件时都会根据邮件的标识码对邮件进行操作。存储路径可以通过以邮件的标识码进行映射获得,先把标识码通过一个Hash函数计算,转换得到文件存储路径,所述路径包括储存邮件文件的各级文件夹名称。在以单文件的形式单独存储邮件的步骤S120中,获得路径后,将邮件以单文件的形式单独存储在所述路径下,并且可以以邮件的标识码作为文件名存储文件,保证了存储邮件的唯一性;在将邮件添加在预定文件中进行集中存储的步骤S130中,将邮件添加在上述路径下的预定文件中。由于采用了映射的方法,可以通过映射规则的设定,使得不同的邮件映射得到的路径不同,从而使得邮件的存储位置充分散列,即在同一文件夹下不会有过多的邮件,提高存取的速度。
在有些具体的应用中,标识码包含有日期信息,上述以邮件的标识码进行映射获得存储所述邮件的路径的步骤S102、S112或S114中,可以将日期信息作为路径的一部分。例如,收到的邮件携带的标识码为mx82t1332829582trzqgfrcg,其中1332829582为日期信息可以转化为对应的日期20120327。当然,在其他实施例中,标识码中可以直接包含不需要转化的日期信息。假设标识码通过Hash算法映射到磁盘号为09,子目录为m的路径,将日期作为上述路径的一部分得到的存储路径为,/BASE_DIR/09/m/201203/27或/BASE_DIR/09/m/2012/03/27等,其中BASE_DIR为基础存储目录。通过将日期信息作为路径的一部分,可以进一步散列需要存储的文件,得到的文件存储路径能有效的提高文件存取的速度,而且方便过期文件的清理工作。例如,对于超过邮件拦截恢复期限(3天、5天、10天等)的文件,清理程序可以根据路径中携带的日期信息,直接清理整个目录。
通常,邮件的标识码除了包含有日期信息外,还包含有非日期信息,上述邮件的标识码进行映射获得存储所述邮件的路径的步骤S102、S112或S114中,还可以将非日期信息中的部分或全部作为所述路径的一部分。仍然以标识码mx82t1332829582trzqgfrcg为例进行说明,把后4位字符“frcg”提取出来,作为邮件存储路径的一部分,例如可以是“/frcg/”或者“/fr/cg/”,从而得到最终的邮件存储路径/BASE_DIR/09/m/201203/27/frcg/或/BASE_DIR/09/m/201203/27/fr/cg。把邮件标识码中非日期信息提取出来作为邮件存储路径中的一部分,可以使邮件文件充分散列,避免一个文件夹下文件数量过多、导致文件检索效率变低。除了提取标识码中的后四位外,也可以提取后一位、后两位或是中间的几位等,这些都可以根据需要进行设定。此外,也可以不将非日期信息作为路径的一部分,例如对于小邮件的存储来说,由于大量的小邮件已经通过添加在预定文件中进行集中存储的方式,大大减少了需要存储的文件的数量,因此,可以不需要进一步的散列,也就是不需要将非日期信息作为路径的一部分,此时步骤S112和S114并不完全相同。
在其他实施例中,除了通过映射的方式获得路径外,还可以对每个文件夹存储的文件或文件夹数量进行限定,当达到限定数量时,即更换存储路径,也可避免在同一文件夹下存储过多的邮件,提高存取的速度。
如图4所示,为了在存储邮件后能够快速的读取邮件,上述垃圾邮件处理方法还包括如下步骤:
步骤S122,本步骤位于步骤S110之后,位于步骤S120之前或之后均可,即如果判断邮件大于阈值,在指向文件中与邮件的标识码对应的标识位设置标识邮件以单文件的形式单独存储。指向文件可以是Hash表文件,记录了邮件的标识码对应的标识位,在标识位设置有用以标识邮件的存储形式为以大邮件的形式存储的数值,例如标识位为0。在读取邮件时,根据标识码找到标识位,再根据标识位判断邮件的存储形式,有区别的采取相应的邮件读取方法。例如如果读取到的标识位为0,表明邮件是以单文件的形式单独存储的,则可以根据标识码映射得到路径,在该路径下读取邮件等。当然,也可以直接在指向文件中直接存储步骤S112中映射获得的路径。
步骤S132,本步骤位于步骤S110之后,位于步骤S130之前或之后均可,即如果判断邮件不大于阈值,在指向文件中与邮件的标识码对应的标识位设置标识邮件以集中存储的形式存储、在指向文件中设置存储路径与在预定文件中的存储位置。指向文件可以是Hash表文件,记录了邮件的标识码对应的标识位,在标识位设置有用以标识邮件的存储形式为集中存储的数值,例如标识位为1。在指向文件中还保存有存储该邮件的预定文件的路径,以及对应邮件在预定文件中的存储位置。在读取邮件时,根据标识码找到标识位,再根据标识位判断邮件的存储形式,有区别的采取相应的邮件读取方法。在读取邮件时,就不需要再计算预定文件的路径和邮件的存储地址了,直接把指向文件读入计算机内存,在内存中高速检索,获取邮件标识码对应的预定文件地址和在预定文件中的存储位置,存储位置可以是预定文件数据段中的偏移地址。
以下结合更为具体的实施例对上述垃圾邮件处理方法进行更为详细的说明,如图5所示,该垃圾邮件处理方法包括如下步骤:
步骤S500,接收被拦截的邮件。每个邮件在接收时都会有一个标识码所标识,邮件的标识码通常是唯一的(又可以称为唯一索引为消息id,MessageID),并且通常邮件的标识码中包括了邮件的投递时间信息,格式为size_t类型,在存储、读取、删除邮件时都会根据邮件的标识码对邮件进行操作。除了邮件的标识码外,在接收被拦截的邮件时还可以获得邮件内容和邮件的数据量等信息。
步骤S510,判断邮件的数据量是否大于阈值。邮件的大小是指邮件数据的大小,阈值是指预设的邮件的数据量临界值,例如512KB、1MB等,通过对邮件的数据量和预设的阈值进行比较,判断收到的邮件的数据量是否大于阈值,如果大于则进入步骤S520,如果不大于,则进入步骤S550。
步骤S520,以邮件的标识码进行映射获得路径。存储路径可以通过以邮件的标识码进行映射获得,先把标识码通过一个Hash函数计算,转换得到文件存储路径,所述路径包括储存邮件文件的各级文件夹名称。例如,收到的邮件携带的标识码为mx82t1332829582trzqgfrcg,其中1332829582为日期信息,mx82t、trzqgfrcg为非日期信息,1332829582可以转化为对应的日期20120327。假设标识码通过Hash算法映射到磁盘号为09,子目录为m的路径,将日期信息和非日期信息中的一部分作为上述路径的一部分得到的存储路径为,/BASE_DIR/09/m/201203/27/fr/cg,其中BASE_DIR为基础存储目录。由于采用了映射的方法,可以通过映射规则的设定,使得不同的邮件映射得到的路径不同,从而使得邮件的存储位置充分散列,即在同一文件夹下不会有过多的邮件,提高存取的速度。通过将日期信息作为路径的一部分,可以进一步散列需要存储的文件,得到的文件存储路径能有效的提高文件存取的速度,而且方便过期文件的清理工作。例如,对于超过邮件拦截恢复期限(3天、5天、10天等)的文件,清理程序可以根据路径中携带的日期信息,直接清理整个目录。
步骤S530,以单文件的形式单独存储邮件。本步骤中,把大邮件都以单个文件的形式单独分别存储,即每个邮件单独对应一个文件存储到步骤S520获得的路径中,当然,如果不同邮件获得的路径相同,可以多个邮件对应的文件存储在相同的目录中。可以以邮件的标识码作为文件名存储文件,保证了存储邮件的唯一性。因为收到的邮件的数据量相对较大,所以每个邮件都以单一文件的形式分别存储,便于管理。
步骤S540,在指向文件中与邮件的标识码对应的标识位设置标识邮件以单文件的形式单独存储。指向文件可以是Hash表文件,记录了邮件的标识码对应的标识位,在标识位设置有用以标识邮件的存储形式为以大邮件的形式存储的数值,例如标识位为0。在读取邮件时,根据标识码找到标识位,再根据标识位判断邮件的存储形式,有区别的采取相应的邮件读取方法。例如如果读取到的标识位为0,表明邮件是以单文件的形式单独存储的,则可以根据标识码映射得到路径,在该路径下读取邮件等。当然,也可以直接在指向文件中直接存储步骤S520中映射获得的路径。
如果步骤S510的判断结果为否,则进入步骤S550,以邮件的标识码进行映射获得路径。步骤S550与步骤S520相似,只是基础存储目录可以不同或者不将非日期信息作为路径的一部分。因为对于小邮件的存储来说,由于大量的小邮件已经通过添加在预定文件中进行集中存储的方式,大大减少了需要存储的文件的数量,因此,可以不需要进一步的散列,也就是不需要将非日期信息作为路径的一部分。需要特别说明的是,步骤S550与步骤S520也可以完全相同。
步骤S560,将邮件添加在预定文件中进行集中存储。预定文件是指预先设定的用来集中存储小邮件的文件。例如,收到的邮件M1经判断小于512KB,则将邮件M1添加到某一预定文件F1中,随后如果收到邮件M2经判断小于512KB时,可以再将邮件M2添加到该预定文件F1中。这样实现了将邮件M1和邮件M2集中存储在预定文件F1中。预定文件可以是Hash桶文件(哈希桶文件)、打包文件或是压缩文件等。在进行添加存储操作时,可以用O_APPEND的方式(以追加的方式打开文件,每次写之前,都将标志位移动到文件的末端)在预定文件末位添加邮件的数据量、邮件内容数据,当然也可以只在预定文件末位添加邮件内容数据,并记录邮件的起始和结束标记。
步骤S570,在指向文件中与邮件的标识码对应的标识位设置标识邮件以集中存储的形式存储、在指向文件中设置存储路径与在预定文件中的存储位置。指向文件可以是Hash表文件,记录了邮件的标识码对应的标识位,在标识位设置有用以标识邮件的存储形式为集中存储的数值,例如标识位为1。在指向文件中还保存有存储该邮件的预定文件的路径,以及对应邮件在预定文件中的存储位置。在读取邮件时,根据标识码找到标识位,再根据标识位判断邮件的存储形式,有区别的采取相应的邮件读取方法。在读取邮件时,就不需要再计算预定文件的路径和邮件的存储地址了,直接把指向文件读入计算机内存,在内存中高速检索,获取邮件标识码对应的预定文件地址和在预定文件中的存储位置,存储位置可以是预定文件数据段中的偏移地址。
上述垃圾邮件处理方法,通过判断邮件的数据量与阈值的关系,将邮件分为两种存储方式:邮件的数据量大于阈值的,以单文件的形式单独存储邮件;邮件的数据量不大于阈值的,将邮件添加在预定文件中进行集中存储。将邮件添加在预定文件中进行集中存储,减少了文件的数量,可以减少磁盘输入输出操作的次数,减少了邮件存储耗时。同时以日期信息作为存储的路径,一方面便于充分散列需要存储的文件,另一方面也便于集中以日期为单位进行邮件的清理。通过指向文件的方式记录邮件的存储方式,可以快速读取邮件。
反垃圾邮件系统拦截到被认为是垃圾邮件的邮件时,调用上述垃圾邮件处理方法提供的存储接口(SaveMail)进行被拦截邮件的临时存储;上述垃圾邮件处理方法接收被拦截的邮件并按照上述过程进行被拦截邮件的存储;当用户需要恢复被拦截的邮件时,调用上述垃圾邮件处理方法提供的邮件读取接口(ReadMail),完成被拦截邮件的读取和转存:在读取邮件时,根据标识码找到标识位,再根据标识位判断邮件的存储形式,有区别的采取相应的邮件读取方法。例如如果读取到的标识位为0,表明邮件是以单文件的形式单独存储的,则可以根据标识码映射得到路径,在该路径下读取邮件;如果读取到的标识位为1,表明邮件是以添加在预定文件中进行集中存储的,获取邮件标识码对应的预定文件地址和在预定文件中的数据段中的偏移地址,读取相应的数据以便进行邮件的恢复。
此外,如图6所示,本实施例提供了一种垃圾邮件处理系统,包括接收模块、判断模块、第一存储模块及第二存储模块。
接收模块用于接收被拦截的邮件。邮件在被反垃圾邮件系统拦截时,调用垃圾邮件处理系统提供的存储接口(SaveMail)进行被拦截邮件的临时存储,即通过上述存储接口(SaveMail)接收被反垃圾邮件系统拦截的邮件。拦截邮件的规则可以根据需要进行设定,例如根据邮件地址、关键词等拦截可能为垃圾邮件的邮件。
判断模块用于判断所述邮件的数据量是否大于阈值。邮件的大小是指邮件数据的大小,阈值是指预设的邮件的数据量临界值,例如512KB、1MB等,通过对邮件的数据量和预设的阈值进行比较,判断收到的邮件的数据量是否大于阈值,如果大于则指令第一存储模块进行存储,如果不大于,则指令第二存储模块进行存储。
如果判断模块判断邮件大于阈值,第一存储模块以单文件的形式单独存储邮件。把邮件的数据量大于预设阈值的每个邮件(以下简称大邮件)都以单个文件的形式单独分别存储,即每个邮件单独对应一个文件。因为收到的邮件的数据量相对较大,所以每个邮件都以单一文件的形式分别存储,便于管理。
如果判断模块判断邮件不大于阈值,第二存储模块将邮件添加在预定文件中进行集中存储。预定文件是指预先设定的用来集中存储大小小于阈值的邮件(以下简称小邮件)的文件。例如,收到的邮件M1经判断小于512KB,则将邮件M1添加到某一预定文件F1中,随后如果收到邮件M2经判断小于512KB时,可以再将邮件M2添加到该预定文件F1中。这样实现了将邮件M1和邮件M2集中存储在预定文件F1中。也就是说,集中存储是将多个邮件集中存储到一个文件中,当然,预定文件的数量也可以不止一个,只要预定文件的数量大于邮件的数量即可达到集中存储的目的。预定文件可以是Hash桶文件(哈希桶文件)、打包文件或是压缩文件等。在进行添加存储操作时,可以用O_APPEND的方式(以追加的方式打开文件,每次写之前,都将标志位移动到文件的末端)在预定文件末位添加此次添加的邮件的数据量及邮件的内容数据,当然也可以只在预定文件末位添加邮件内容数据,并记录邮件的起始和结束标记。
上述垃圾邮件处理系统,通过判断邮件的数据量与阈值的关系,将邮件分为两种存储方式:邮件的数据量大于阈值的,以单文件的形式单独存储邮件;邮件的数据量不大于阈值的,将邮件添加在预定文件中进行集中存储。将邮件添加在预定文件中进行集中存储,减少了文件的数量,可以减少磁盘输入输出操作的次数,减少了邮件存储耗时。
如图7所示,在其中一个实施例中,垃圾邮件处理系统还包括以邮件的标识码进行映射获得路径的路径模块。每个邮件在接收时都会有一个标识码所标识,邮件的标识码通常是唯一的(又可以称为唯一索引为消息id,MessageID),并且通常邮件的标识码中包括了邮件的投递时间信息,格式为size_t类型,在存储、读取、删除邮件时都会根据邮件的标识码对邮件进行操作。路径模块可以通过以邮件的标识码进行映射获得存储路径,先把标识码通过一个Hash函数计算,转换得到文件存储路径,所述路径包括储存邮件文件的各级文件夹名称。路径模块获得路径后,第一存储模块将邮件以单文件的形式单独存储在所述路径下,并且可以以邮件的标识码作为文件名存储文件,保证了存储邮件的唯一性;第二存储模块将邮件添加在上述路径下的预定文件中。由于采用了映射的方法,可以通过映射规则的设定,使得不同的邮件映射得到的路径不同,从而使得邮件的存储位置充分散列,即在同一文件夹下不会有过多的邮件,提高存取的速度。
在有些具体的应用中,标识码包含有日期信息,上述路径模块以邮件的标识码进行映射获得存储所述邮件的路径的过程中,可以将日期信息作为路径的一部分。例如,收到的邮件携带的标识码为mx82t1332829582trzqgfrcg,其中1332829582为日期信息可以转化为对应的日期20120327。当然,在其他实施例中,标识码中可以直接包含不需要转化的日期信息。假设标识码通过Hash算法映射到磁盘号为09,子目录为m的路径,将日期作为上述路径的一部分得到的存储路径为,/BASE_DIR/09/m/201203/27或/BASE_DIR/09/m/2012/03/27等,其中BASE_DIR为基础存储目录。通过将日期信息作为路径的一部分,可以进一步散列需要存储的文件,得到的文件存储路径能有效的提高文件存取的速度,而且方便过期文件的清理工作。例如,对于超过邮件拦截恢复期限(3天、5天、10天等)的文件,清理程序可以根据路径中携带的日期信息,直接清理整个目录。
通常,邮件的标识码除了包含有日期信息外,还包含有非日期信息,上述路径模块以邮件的标识码进行映射获得存储所述邮件的路径的过程中,还可以将非日期信息中的部分或全部作为所述路径的一部分。仍然以标识码mx82t1332829582trzqgfrcg为例进行说明,把后4位字符“frcg”提取出来,作为邮件存储路径的一部分,例如可以是“/frcg/”或者“/fr/cg/”,从而得到最终的邮件存储路径/BASE_DIR/09/m/201203/27/frcg/或/BASE_DIR/09/m/201203/27/fr/cg。把邮件标识码中非日期信息提取出来作为邮件存储路径中的一部分,可以使邮件文件充分散列,避免一个文件夹下文件数量过多、导致文件检索效率变低。除了提取标识码中的后四位外,也可以提取后一位、后两位或是中间的几位等,这些都可以根据需要进行设定。此外,也可以不将非日期信息作为路径的一部分,例如对于小邮件的存储来说,由于大量的小邮件已经通过添加在预定文件中进行集中存储的方式,大大减少了需要存储的文件的数量,因此,可以不需要进一步的散列,也就是不需要将非日期信息作为路径的一部分。
在其他实施例中,路径模块除了通过映射的方式获得路径外,还可以对每个文件夹存储的文件或文件夹数量进行限定,当达到限定数量时,即更换存储路径,也可避免在同一文件夹下存储过多的邮件,提高存取的速度。
如图8所示,为了在存储邮件后能够快速的读取邮件,上述垃圾邮件处理系统还包括第一指向模块及第二指向模块。
如果邮件大于阈值,第一指向模块在指向文件中与邮件的标识码对应的标识位设置标识邮件以单文件的形式单独存储。指向文件可以是Hash表文件,记录了邮件的标识码对应的标识位,在标识位设置有用以标识邮件的存储形式为以大邮件的形式存储的数值,例如标识位为0。在读取邮件时,根据标识码找到标识位,再根据标识位判断邮件的存储形式,有区别的采取相应的邮件读取方法。例如如果读取到的标识位为0,表明邮件是以单文件的形式单独存储的,则可以根据标识码映射得到路径,在该路径下读取邮件等。当然,也可以直接在指向文件中直接存储路径模块映射获得的路径。
如果邮件不大于阈值,第二指向模块在指向文件中与邮件的标识码对应的标识位设置标识邮件以集中存储的形式存储、在指向文件中设置存储路径与在预定文件中的存储位置。指向文件可以是Hash表文件,记录了邮件的标识码对应的标识位,在标识位设置有用以标识邮件的存储形式为集中存储的数值,例如标识位为1。在指向文件中还保存有存储该邮件的预定文件的路径,以及对应邮件在预定文件中的存储位置。在读取邮件时,根据标识码找到标识位,再根据标识位判断邮件的存储形式,有区别的采取相应的邮件读取方法。在读取邮件时,就不需要再计算预定文件的路径和邮件的存储地址了,直接把指向文件读入计算机内存,在内存中高速检索,获取邮件标识码对应的预定文件地址和在预定文件中的存储位置,存储位置可以是预定文件数据段中的偏移地址。
上述垃圾邮件处理系统,通过判断邮件的数据量与阈值的关系,将邮件分为两种存储方式:邮件的数据量大于阈值的,以单文件的形式单独存储邮件;邮件的数据量不大于阈值的,将邮件添加在预定文件中进行集中存储。将邮件添加在预定文件中进行集中存储,减少了文件的数量,可以减少磁盘输入输出操作的次数,减少了邮件存储耗时。同时以日期信息作为存储的路径,一方面便于充分散列需要存储的文件,另一方面也便于集中以日期为单位进行邮件的清理。通过指向文件的方式记录邮件的存储方式,可以快速读取邮件。
反垃圾邮件系统拦截到被认为是垃圾邮件的邮件时,调用上述垃圾邮件处理系统提供的存储接口(SaveMail)进行被拦截邮件的临时存储;上述垃圾邮件处理系统接收被拦截的邮件并按照上述过程进行被拦截邮件的存储;当用户需要恢复被拦截的邮件时,调用上述垃圾邮件处理系统提供的邮件读取接口(ReadMail),完成被拦截邮件的读取和转存:在读取邮件时,根据标识码找到标识位,再根据标识位判断邮件的存储形式,有区别的采取相应的邮件读取方法。例如如果读取到的标识位为0,表明邮件是以单文件的形式单独存储的,则可以根据标识码映射得到路径,在该路径下读取邮件;如果读取到的标识位为1,表明邮件是以添加在预定文件中进行集中存储的,获取邮件标识码对应的预定文件地址和在预定文件中的数据段中的偏移地址,读取相应的数据以便进行邮件的恢复。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种垃圾邮件处理方法,其特征在于,包括:
接收被拦截的邮件;
判断所述邮件的数据量是否大于阈值;
如果是,以单文件的形式单独存储所述邮件;
如果否,将所述邮件添加在预定文件中进行集中存储;所述将所述邮件添加在预定文件中进行集中存储的方式为,将所述邮件的内容数据及所述邮件的大小添加在所述预定文件末位进行集中存储;或者将所述邮件的内容数据添加在所述预定文件末位进行集中存储,并记录所述邮件的起始和结束标记;
以所述邮件的标识码进行映射获得路径的步骤,所述以单文件的形式单独存储所述邮件的步骤中,将所述邮件以单文件的形式单独存储在所述路径下;所述将所述邮件添加在预定文件中进行集中存储的步骤中,将所述邮件添加在所述路径下的预定文件中;当用于存储所述邮件的文件夹中存储的文件或文件夹数量达到限定数量时,更换存储路径。
2.根据权利要求1所述的垃圾邮件处理方法,其特征在于,所述标识码包含日期信息,所述以所述邮件的标识码进行映射获得存储所述邮件的路径的步骤中将所述日期信息作为所述路径的一部分。
3.根据权利要求2所述的垃圾邮件处理方法,其特征在于,所述标识码还包含非日期信息,所述以所述邮件的标识码进行映射获得存储所述邮件的路径的步骤中将所述非日期信息中的部分或全部作为所述路径的一部分。
4.根据权利要求1至3中任意一项所述的垃圾邮件处理方法,其特征在于,
如果判断邮件大于阈值,还包括在指向文件中与所述邮件的标识码对应的标识位设置标识所述邮件以单文件的形式单独存储的步骤;
如果判断邮件不大于阈值,还包括在所述指向文件中与所述邮件的标识码对应的标识位设置标识所述邮件以集中存储的形式存储、在所述指向文件中设置存储路径与在所述预定文件中的存储位置的步骤。
5.一种垃圾邮件处理系统,其特征在于,包括:
接收模块,用于接收被拦截的邮件;
判断模块,用于判断所述邮件的数据量是否大于阈值;
第一存储模块,如果所述邮件大于阈值,以单文件的形式单独存储所述邮件;
第二存储模块,如果所述邮件不大于阈值,将所述邮件添加在预定文件中进行集中存储;所述将所述邮件添加在预定文件中进行集中存储的方式为,将所述邮件的内容数据及所述邮件的大小添加在所述预定文件末位进行集中存储;或者将所述邮件的内容数据添加在所述预定文件末位进行集中存储,并记录所述邮件的起始和结束标记;
以所述邮件的标识码进行映射获得路径的路径模块,所述第一存储模块将所述邮件以单文件的形式单独存储在所述路径下;所述第二存储模块将所述邮件添加在所述路径下的预定文件中;当用于存储所述邮件的文件夹中存储的文件或文件夹数量达到限定数量时,更换存储路径。
6.根据权利要求5所述的垃圾邮件处理系统,其特征在于,所述路径模块将所述标识码中的日期信息作为所述路径的一部分。
7.根据权利要求6所述的垃圾邮件处理系统,其特征在于,所述路径模块将所述标识码中的部分或全部非日期信息作为所述路径的一部分。
8.根据权利要求5至7中任意一项所述的垃圾邮件处理系统,其特征在于,还包括:
第一指向模块,如果所述邮件大于阈值,在指向文件中与所述邮件的标识码对应的标识位设置标识所述邮件以单文件的形式单独存储;
第二指向模块,如果所述邮件不大于阈值,在所述指向文件中与所述邮件的标识码对应的标识位设置标识所述邮件以集中存储的形式存储、在所述指向文件中设置存储路径与在所述预定文件中的存储位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210271378.6A CN103580989B (zh) | 2012-07-31 | 2012-07-31 | 垃圾邮件处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210271378.6A CN103580989B (zh) | 2012-07-31 | 2012-07-31 | 垃圾邮件处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103580989A CN103580989A (zh) | 2014-02-12 |
CN103580989B true CN103580989B (zh) | 2018-07-24 |
Family
ID=50051954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210271378.6A Active CN103580989B (zh) | 2012-07-31 | 2012-07-31 | 垃圾邮件处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103580989B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844236A (zh) * | 2016-12-27 | 2017-06-13 | 北京五八信息技术有限公司 | 终端设备的数据存储方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101039278A (zh) * | 2007-03-30 | 2007-09-19 | 华为技术有限公司 | 数据管理方法及系统 |
CN101043519A (zh) * | 2006-03-21 | 2007-09-26 | 汤淼 | 网络存储系统 |
CN101452465A (zh) * | 2007-12-05 | 2009-06-10 | 高德软件有限公司 | 大批量文件数据存放和读取方法 |
CN102332029A (zh) * | 2011-10-15 | 2012-01-25 | 西安交通大学 | 一种基于Hadoop的海量可归类小文件关联存储方法 |
CN102419775A (zh) * | 2011-12-22 | 2012-04-18 | 厦门雅迅网络股份有限公司 | 一种海量小文件的存储与检索方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8126966B2 (en) * | 2007-06-28 | 2012-02-28 | Apple Inc. | Separating attachments received from a mobile device |
-
2012
- 2012-07-31 CN CN201210271378.6A patent/CN103580989B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101043519A (zh) * | 2006-03-21 | 2007-09-26 | 汤淼 | 网络存储系统 |
CN101039278A (zh) * | 2007-03-30 | 2007-09-19 | 华为技术有限公司 | 数据管理方法及系统 |
CN101452465A (zh) * | 2007-12-05 | 2009-06-10 | 高德软件有限公司 | 大批量文件数据存放和读取方法 |
CN102332029A (zh) * | 2011-10-15 | 2012-01-25 | 西安交通大学 | 一种基于Hadoop的海量可归类小文件关联存储方法 |
CN102419775A (zh) * | 2011-12-22 | 2012-04-18 | 厦门雅迅网络股份有限公司 | 一种海量小文件的存储与检索方法 |
Non-Patent Citations (1)
Title |
---|
一种提高云存储中小文件存储效率的方案;余思等;《西安交通大学学报》;20110630;第45卷(第6期);第59-61页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103580989A (zh) | 2014-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101963982B (zh) | 基于位置敏感哈希的删冗存储系统元数据管理方法 | |
US10360182B2 (en) | Recovering data lost in data de-duplication system | |
US7475120B1 (en) | Auto removal of sent attachments | |
US8010505B2 (en) | Efficient backup data retrieval | |
EP2898430B1 (en) | Mail indexing and searching using hierarchical caches | |
CN109542358A (zh) | 一种固态硬盘冷热数据分离方法、装置及设备 | |
US7895163B2 (en) | Method of managing messages in archiving system for E-Discovery | |
CN101645043B (zh) | 写数据的方法、读数据的方法及存储设备 | |
CN109726177A (zh) | 一种基于HBase的海量文件分区索引方法 | |
WO2007035652A2 (en) | Avoiding duplicative storage of managed content | |
WO2011063745A1 (zh) | 电子邮件管理方法、装置和终端设备 | |
CN101546342A (zh) | 实现搜索服务的方法与系统 | |
US20100030814A1 (en) | System, method, or apparatus relating to a data structure with a large number of entries | |
CN104750432B (zh) | 一种数据存储方法及装置 | |
CN107786623A (zh) | 消息异步处理方法和装置 | |
CN109063192A (zh) | 一种高性能海量文件存储系统工作方法 | |
KR101512760B1 (ko) | 대용량 장기 아카이브의 생산 및 관리 방법 | |
US9659029B2 (en) | File system implementing write once read many (WORM) | |
CN102346783B (zh) | 数据检索方法及装置 | |
CN103580989B (zh) | 垃圾邮件处理方法及系统 | |
CN102722450A (zh) | 一种基于位置敏感哈希的删冗块设备存储方法 | |
CN104317955B (zh) | 一种移动终端存储空间中的文件扫描方法和装置 | |
CN102799583B (zh) | 一种面向对象的存取方法及系统 | |
US7058688B2 (en) | Multi-stage email interception method | |
CN103139043B (zh) | 一种电子邮件真实性判断方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |