垃圾邮件识别方法、装置和系统与流程

文档序号:18226618发布日期:2019-07-19 23:30阅读:308来源:国知局
垃圾邮件识别方法、装置和系统与流程

本发明涉及邮件过滤技术,尤其涉及一种垃圾邮件识别方法、装置和系统。



背景技术:

随着互联网的广泛普及,邮件已成为人们沟通交流的常用工具,因此许多合法或非法的商家利用邮件传播广告、诈骗信息或反动信息等垃圾信息,甚至在邮件中携带病毒或木马,这种邮件通常被称为“垃圾邮件”。垃圾邮件严重影响用户对正常邮件的查收和处理,尤其是当邮件中携带病毒或木马时,会给用户带来严重的危害。因此,正确的识别和过滤垃圾邮件显得尤为重要。

邮件在发送过程中,有很多原因会导致产生退信,例如:收件人邮箱满了或者接收方服务器无法到达等等。正常情况下,只要邮件不能成功的发送到收件人的邮箱中,发件人都会接收到一封退信,这封退信的附件中包含了发件人的原信。退信对于发件人来说非常重要,因为只有接收到退信以后发件人才知道邮件没有成功的发送到收件人的邮箱,发件人知道发邮件失败以后可以通过其他通信方式联系收件人,不至于耽误重要的事情。正因为退信的重要性,所以对于正常的退信,一般的反垃圾邮件过滤系统都有“绿色通道”,将退信识别为正常邮件,存放在用户的收件箱。

然而,许多垃圾邮件的发送者经常利用反垃圾邮件过滤系统中的“绿色通道”,伪造和真实退信相似的退信。由于伪造退信和真实退信非常的相似,通过内容很难区分,因此反垃圾邮件过滤系统容易将伪造退信误识别为正常邮件存放在用户的收件箱,从而影响了用户对邮件的正常使用。



技术实现要素:

有鉴于此,本发明提供一种垃圾邮件识别方法、装置和系统,用于提高垃圾邮件的识别准确率。

第一方面,本发明实施例提供一种垃圾邮件识别方法,包括:

在发往外域的邮件中增加退信防伪标记字段;

对从外域接收的退信进行退信防伪标记字段检测,并根据检测结果识别退信是否为垃圾邮件。

通过在发往外域的邮件中增加退信防伪标记字段,在接收到外域发送的退信时,对从外域接收的退信进行退信防伪标记字段检测,根据检测结果识别退信是否为垃圾邮件,从而可以识别出退信是伪造退信还是真实退信,进而可以提高垃圾邮件的识别准确率。

作为本发明实施例一种可选的实施方式,在发往外域的邮件中增加退信防伪标记字段,具体包括:

接收本域用户发送的待发送邮件;

判断待发送邮件是否为发往外域的邮件;

若待发送邮件为发往外域的邮件,则生成待发送邮件的唯一标识符;

在待发送邮件的信头增加退信防伪标记字段,退信防伪标记字段包括扩展字段标记和待发送邮件的唯一标识符;

将退信防伪标记字段写入缓存中;

发送待发送邮件至外域。

作为本发明实施例一种可选的实施方式,退信防伪标记字段还包括发件人邮箱账号,在待发送邮件的信头增加退信防伪标记字段之前,方法还包括:

获取待发送邮件的发件人邮箱账号。

通过在退信防伪标记字段中增加发件人邮箱账号,可以提高防伪标记字段的防伪可靠性。

作为本发明实施例一种可选的实施方式,设置退信防伪标记字段在缓存中的生存时间为预设时间。

通过设置退信防伪标记字段在缓存中的生存时间,可以节约缓存系统的内存。

作为本发明实施例一种可选的实施方式,对从外域接收的退信进行退信防伪标记字段检测,并根据检测结果识别退信是否为垃圾邮件,具体包括:

检测退信中携带的被退邮件的信头是否存在退信防伪标记字段;

若被退邮件的信头不存在退信防伪标记字段,则识别外域邮件为垃圾邮件;

若被退邮件的信头存在退信防伪标记字段,则查询缓存中是否存在被退邮件的退信防伪标记字段;

若缓存中不存在被退邮件的退信防伪标记字段,则识别外域邮件为垃圾邮件;

若缓存中存在被退邮件的退信防伪标记字段,则识别外域邮件为正常邮件。

作为本发明实施例一种可选的实施方式,在对从外域接收的退信进行退信防伪标记字段检测,并根据检测结果识别退信是否为垃圾邮件之前,方法还包括:

接收外域发送的外域邮件,并识别外域邮件是否为退信;

当识别外域邮件为退信时,获取退信中携带的被退邮件的信头。

作为本发明实施例一种可选的实施方式,接收外域发送的外域邮件,并识别外域邮件是否为退信,具体包括:

接收外域发送的外域邮件,并解析外域邮件;

判断外域邮件的主题中是否包含退信关键字;

若外域邮件的主题中包含退信关键字,则判断外域邮件是否符合mime协议规定的退信格式;

若外域邮件中符合mime协议规定的退信格式,则识别外域邮件为退信。

第二方面,本发明实施例提供一种垃圾邮件识别装置,包括:

邮件发送模块,用于在发往外域的邮件中增加退信防伪标记字段;

邮件接收模块,用于对从外域接收的退信进行退信防伪标记字段检测,并根据检测结果识别退信是否为垃圾邮件。

上述第二方面所提供的装置,其有益效果可以参见上述第一方面所带来的有益效果,在此不再赘述。

第三方面,本发明实施例提供一种垃圾邮件识别系统,包括:

邮件发送服务器,用于在发往外域的邮件中增加退信防伪标记字段;

邮件接收服务器,用于对从外域接收的退信进行退信防伪标记字段检测,并根据检测结果识别退信是否为垃圾邮件。

上述第三方面所提供的系统,其有益效果可以参见上述第一方面所带来的有益效果,在此不再赘述。

第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现第一方面所述的方法。

上述第四方面所提供的计算机可读存储介质,其有益效果可以参见上述第一方面所带来的有益效果,在此不再赘述。

附图说明

图1为本发明实施例提供的垃圾邮件识别方法的流程示意图;

图2为本发明实施例提供的在邮件中增加退信防伪标记字段的方法流程示意图;

图3为本发明实施例提供的识别退信是否为垃圾邮件的方法流程示意图;

图4为本发明实施例提供的退信识别方法的流程示意图;

图5为本发明实施例提供的垃圾邮件识别装置的结构示意图;

图6为本发明实施例提供的垃圾邮件识别系统的结构示意图。

具体实施方式

针对目前的反垃圾邮件过滤系统难以区分伪造退信和真实退信,容易将伪造退信误识别为正常邮件而影响用户对邮件的正常使用的技术问题,本发明实施例提供一种垃圾邮件识别方法、装置和系统,主要通过在发往外域的邮件中增加退信防伪标记字段,在接收到外域发送的退信时,对从外域接收的退信进行退信防伪标记字段检测,进而根据检测结果识别退信是否为垃圾邮件,即识别退信是伪造退信还是真实退信,来提高垃圾邮件的识别准确率,进而提高用户体验度。

下面结合附图,对本发明的实施例进行描述。

图1为本发明实施例提供的垃圾邮件识别方法的流程示意图,如图1所示,本实施例提供的方法可以包括如下步骤:

s101、在发往外域的邮件中增加退信防伪标记字段。

具体的,当收件人邮箱地址不存在、收件人邮箱空间已满或收件人拒收邮件等情况下,对于发往本域的邮件,系统会直接弹出提示,提示发件人邮件未发成功的原因;对于发往外域的邮件,发件人发出邮件后会收到退信,该退信中通常会携带被退邮件,也就是发件人发出的邮件,或者携带被退邮件的信头。

为了识别退信是真实退信还是伪造退信,本实施例中,在发往外域的邮件中增加退信防伪标记字段,这样在收到退信时,就可以通过检测退信中是否包含对应的退信防伪标记字段来识别退信的真伪,即识别退信是否是垃圾邮件。

在增加退信防伪标记字段时,具体可以根据图2所示的方法实现。图2为本发明实施例提供的在邮件中增加退信防伪标记字段的方法流程示意图,如图2所示,该方法可以包括如下步骤:

s201、接收本域用户发送的待发送邮件。

具体的,本域用户发送邮件(即待发送邮件)时,通过本域的邮件服务器来将邮件发给收件人。该邮件服务器即为邮件代理器(mailtransferagent,mta),在较大的邮件系统中,邮件服务器通常包括邮件发送服务器和邮件接收服务器,其中,邮件发送服务器一般指简单邮件传输协议(simplemailtransferprotocol,smtp)服务器,负责接收本域用户发送的邮件,将本域用户发送的邮件传递给外域的邮件服务器或者传递给本域的其他用户;邮件接收服务器一般指邮件交换(mailexchager,mx)服务器,负责从外域接收邮件。

邮件服务器(具体为邮件发送服务器)收到用户发送的待发送邮件后,根据待发送邮件的收件人邮箱地址将待发送邮件发送给对应的收件人。

s202、判断待发送邮件是否为发往外域的邮件,若是,则执行步骤s203;若否,则执行步骤s208。

基于上述所述的,通常只是在向外域发送邮件时才产生退信,因此在增加退信防伪标记字段时,只针对发往外域的邮件。邮件服务器接收到用户发送的待发送邮件后,则需判断待发送邮件是否为发往外域的邮件。

在具体判断时,邮件服务器可以根据待发送邮件的收件人邮箱地址来识别邮件;收件人邮箱地址在邮件服务器的服务范围内,即收件人邮箱地址对应的域名与邮件服务器服务的域名一致,待发送邮件则为发往本域的邮件;收件人邮箱地址不在邮件服务器的服务范围内,即收件人邮箱地址对应的域名与邮件服务器服务的域名不一致,待发送邮件则为发往外域的邮件。

例如:本域用户111@263.com向222@263.com发送邮件,@263.com邮件服务器根据222@263.com的域名263.com确定该邮件为发往本域的邮件;本域用户111@263.com向111@qq.com发送邮件,@263.com邮件服务器根据111@qq.com的域名qq.com确定该邮件为发往外域的邮件。

s203、生成待发送邮件的唯一标识符。

具体的,若待发送邮件为发往外域的邮件,则邮件服务器可以采用相关算法生成该邮件的唯一标识符,例如:通用唯一识别码(universallyuniqueidentifier,uuid),进而生成退信防伪标记字段,以保证退信防伪标记字段的唯一性。

s204、获取待发送邮件的发件人邮箱账号。

具体的,在增加退信防伪标记字段时,还可以获取待发送邮件的发件人邮箱账号,将发件人邮箱账号和唯一标识符一起添加在退信防伪标记字段中,以提高防伪标记字段的防伪可靠性。

需要说明的是,步骤s204与步骤s203之间没有严格的执行时序关系,步骤s204可以在步骤s203之后执行,也可以在步骤s203之前执行,还可以与步骤s203同时执行,具体执行顺序本实施例不做特别限定。

s205、在待发送邮件的信头增加退信防伪标记字段。

具体的,增加的退信防伪标记字段需符合多用途互联网邮件扩展(multipurposeinternetmailextensions,mime)格式规范,需包括扩展字段标记和退信防伪标记值,其中,退信防伪标记值包括唯一识别符,也可以还包括发件人邮箱账号。当退信防伪标记值只包括唯一识别符时,则可以不执行步骤s204。

本实施例中以退信防伪标记字段包括扩展字段标记、待发送邮件的唯一标识符和发件人邮箱账号为例示例性说明本发明的技术方案。例如:扩展字段标记为“x-bounce-tag”、待发送邮件的唯一标识符为“da02228b-8f00-4231-ab94-21799adbf0bf”、发件人邮箱账号为“zhangsan@a.cn”,则退信防伪标记字段可以采用“扩展字段标记:发件人邮箱账号+待发送邮件的唯一标识符”的形式,即退信防伪标记字段可以为“x-bounce-tag:zhangsan@a.cn+da02228b-8f00-4231-ab94-21799adbf0bf”;退信防伪标记字段也可以采用“扩展字段标记:待发送邮件的唯一标识符+发件人邮箱账号”的形式,即退信防伪标记字段可以为“x-bounce-tag:da02228b-8f00-4231-ab94-21799adbf0bf+zhangsan@a.cn”,当然退信防伪标记字段也可以采用其他形式,此处只是一种示例性说明。

为了便于识别退信防伪标记字段,退信防伪标记字段添加在待发送邮件的信头。

s206、将退信防伪标记字段写入缓存中,并设置退信防伪标记字段在缓存中的生存时间为预设时间。

具体的,在在待发送邮件的信头增加退信防伪标记字段的同时,需要将退信防伪标记字段写入缓存中,以便于后期的退信防伪标记字段检测。

另外,邮件发送是有时间周期的,比如一天以内如果投递不成功就不会再尝试,因此为了节约缓存系统的内存,在将退信防伪标记字段写入缓存的同时,可以为退信防伪标记字段设置生存时间。具体的,可以设置退信防伪标记字段在缓存中的生存时间为预设时间,该预设时间根据邮件的发送时间周期确定,例如:可以设置为24h。

s207、发送待发送邮件至外域。

具体的,在待发送邮件的信头添加完退信防伪标记字段后,就可以根据待发送邮件的收件人邮箱地址将待发送邮件发送至外域对应的用户。

s208、将待发送邮件存储在待发送邮件对应的收件人的邮箱中。

若待发送邮件为发往本域的邮件,则邮件服务器可以通过邮件投递代理(mailddliveryagent,mda)将待发送邮件存储在待发送邮件对应的收件人的邮箱中。

s102、对从外域接收的退信进行退信防伪标记字段检测,并根据检测结果识别退信是否为垃圾邮件。

具体的,通过上述步骤s101,从本域发出的邮件中都包含特定的退信防伪标记字段,当邮件服务器接收到外域发送的退信时,就可以检测退信携带的被退邮件中是否包含正确的退信防伪标记字段来识别退信是否是真实退信,也就是识别退信是否为垃圾邮件。

在具体检测时,可以采用图3所示方法实现。图3为本发明实施例提供的识别退信是否为垃圾邮件的方法流程示意图,如图3所示,该方法可以包括如下步骤:

s301、检测退信中携带的被退邮件的信头是否存在退信防伪标记字段;若是,则执行步骤s302;若否,则执行步骤s304。

具体的,若退信为真实退信,退信中携带的被退邮件的信头会包含退信防伪标记字段;若退信为伪造退信,退信中可能未携带退信防伪标记字段或携带伪造的退信防伪标记字段。因此,在接收到退信后,先从退信携带的被退邮件中提取退信防伪标记字段,查看被退邮件的信头是否存在退信防伪标记字段。若被退邮件中不存在退信防伪标记字段,则该退信必然为伪造退信,也即垃圾邮件。

s302、查询缓存中是否存在被退邮件的退信防伪标记字段;若是,则执行步骤s303;若否,则执行步骤s304。

具体的,若被退邮件的信头存在退信防伪标记字段,则说明退信有可能是真实退信,此时再通过查询缓存中存储的退信防伪标记字段来确定被退邮件的退信防伪标记字段是真实的退信防伪标记字段还是伪造的退信防伪标记字段。

s303、识别外域邮件为正常邮件。

具体的,若缓存中存在被退邮件的退信防伪标记字段,则说明被退邮件是本域用户发出的邮件,从而说明退信为真实退信,即退信(外域邮件)为正常邮件。

s304、识别外域邮件为垃圾邮件。

具体的,若被退邮件的信头不存在退信防伪标记字段,则说明退信为伪造退信,即退信(外域邮件)为垃圾邮件。

另外,若缓存中不存在被退邮件的退信防伪标记字段,则说明退信防伪标记字段是伪造的退信防伪标记字段,也就是说退信为伪造退信,即退信(外域邮件)为垃圾邮件。

本实施例中,在步骤s102之前,还可以包括如下步骤:

接收外域发送的外域邮件,并识别外域邮件是否为退信;当识别外域邮件为退信时,获取退信中携带的被退邮件的信头。

具体的,外域发送的邮件有正常邮件和退信,在进行退信防伪标记字段检测前需要识别出退信。在具体实现时,可以采用图4所示的方法。图4为本发明实施例提供的退信识别方法的流程示意图,如图4所示,该方法可以包括如下步骤:

s401、接收外域发送的外域邮件,并解析外域邮件。

具体的,邮件服务器从外域接收到外域邮件后,可以按照mime标准解析外域邮件。

s402、判断外域邮件的主题中是否包含退信关键字;若是,则执行步骤s403;若否,则执行步骤s405。

具体的,解析完外域邮件后,进行外域邮件的退信识别。退信的主题中会包含一些退信关键字,例如:失败、退信、未送达、undeliveredmail、deliveryfail、undeliverable等。如果接收到的外域邮件的主题中不包含退信关键字,说明接收到的外域邮件不是退信;如果接收到的外域邮件的主题中包含退信关键字,说明接收到的外域邮件有可能是退信。

s403、判断外域邮件是否符合mime协议规定的退信格式;若是,则执行步骤s404;若否,则执行步骤s405。

具体的,退信需要符合mime协议规定的退信格式,若为退信,退信中通常会携带一个扩展名为eml的附件,该附件为被退回的邮件(即被退邮件);退信中也可以仅携带被退邮件的信头,该被退邮件的信头一般以mime规定的格式携带在被退邮件的信体中。因此,在检测到外域邮件的主题中包含退信关键字后,进一步判断外域邮件是否符合mime协议规定的退信格式,以确定外域邮件是否为退信。

s404、识别外域邮件为退信。

具体的,如果外域邮件符合mime协议规定的退信格式,则说明外域邮件为退信,此时可以做进一步的退信防伪标记字段检测。

s405、识别外域邮件为正常邮件。

具体的,如果接收到的外域邮件的主题中不包含退信关键字,说明接收到的外域邮件不是退信,则可以确定外域邮件为正常邮件。

另外,如果接收到的外域邮件不符合mime协议规定的退信格式,也可以说明接收到的外域邮件不是退信,则也可以确定外域邮件为正常邮件。

在识别出外域邮件为退信后,就可以获取退信中携带的被退邮件的信头。具体可以通过提取退信中携带的扩展名为eml的附件(被退邮件)的信头或者提取退信的信体中携带的被退邮件的信头实现。

需要说明的是,上述方法只是为了识别出伪造退信,在确定外域邮件为正常邮件后,还可以对外域邮件进行其他的垃圾邮件检测,以进一步提高垃圾邮件的识别准确率,具体的检测方法本实施例不做特别限定。

本实施例提供的垃圾邮件识别方法,通过在发往外域的邮件中增加退信防伪标记字段,在接收到外域发送的退信时,对从外域接收的退信进行退信防伪标记字段检测,根据检测结果识别退信是否为垃圾邮件,从而可以识别出退信是伪造退信还是真实退信,进而可以提高垃圾邮件的识别准确率。

图5为本发明实施例提供的垃圾邮件识别装置的结构示意图,如图5所示,本实施例提供的装置包括:

邮件发送模块110,用于在发往外域的邮件中增加退信防伪标记字段;

邮件接收模块120,用于对从外域接收的退信进行退信防伪标记字段检测,并根据检测结果识别退信是否为垃圾邮件。

作为一种具体的实施方式,邮件发送模块110具体用于:

接收本域用户发送的待发送邮件;

判断待发送邮件是否为发往外域的邮件;

若待发送邮件为发往外域的邮件,则生成待发送邮件的唯一标识符;

在待发送邮件的信头增加退信防伪标记字段,退信防伪标记字段包括扩展字段标记和待发送邮件的唯一标识符;

将退信防伪标记字段写入缓存中;

发送待发送邮件至外域。

作为一种可选的实施方式,邮件发送模块110还用于:获取待发送邮件的发件人邮箱账号。

作为一种可选的实施方式,邮件发送模块110还用于:设置退信防伪标记字段在缓存中的生存时间为预设时间。

作为一种具体的实施方式,邮件接收模块120具体用于:

检测退信中携带的被退邮件的信头是否存在退信防伪标记字段;

若被退邮件的信头不存在退信防伪标记字段,则识别外域邮件为垃圾邮件;

若被退邮件的信头存在退信防伪标记字段,则查询缓存中是否存在被退邮件的退信防伪标记字段;

若缓存中不存在被退邮件的退信防伪标记字段,则识别外域邮件为垃圾邮件;

若缓存中存在被退邮件的退信防伪标记字段,则识别外域邮件为正常邮件。

作为一种可选的实施方式,邮件接收模块120还用于:

接收外域发送的外域邮件,并识别外域邮件是否为退信;

当识别外域邮件为退信时,获取退信中携带的被退邮件的信头。

作为一种具体的实施方式,邮件接收模块120具体用于:

接收外域发送的外域邮件,并解析外域邮件;

判断外域邮件的主题中是否包含退信关键字;

若外域邮件的主题中包含退信关键字,则判断外域邮件是否符合mime协议规定的退信格式;

若外域邮件符合mime协议规定的退信格式,则识别外域邮件为退信。

本实施例提供的装置可以执行上述方法实施例,其实现原理与技术效果类似,此处不再赘述。

图6为本发明实施例提供的垃圾邮件识别系统的结构示意图,如图6所示,该系统包括:

邮件发送服务器210,用于在发往外域的邮件中增加退信防伪标记字段;

邮件接收服务器220,用于对从外域接收的退信进行退信防伪标记字段检测,并根据检测结果识别退信是否为垃圾邮件。

作为一种具体的实施方式,邮件发送服务器210具体用于:

接收本域用户发送的待发送邮件;

判断待发送邮件是否为发往外域的邮件;

若待发送邮件为发往外域的邮件,则生成待发送邮件的唯一标识符;

在待发送邮件的信头增加退信防伪标记字段,退信防伪标记字段包括扩展字段标记和待发送邮件的唯一标识符;

将退信防伪标记字段写入缓存中;

发送待发送邮件至外域。

作为一种可选的实施方式,邮件发送服务器210还用于:获取待发送邮件的发件人邮箱账号。

作为一种可选的实施方式,邮件发送服务器210还用于:设置退信防伪标记字段在缓存中的生存时间为预设时间。

作为一种具体的实施方式,邮件接收服务器220具体用于:

检测退信中携带的被退邮件的信头是否存在退信防伪标记字段;

若被退邮件的信头不存在退信防伪标记字段,则识别外域邮件为垃圾邮件;

若被退邮件的信头存在退信防伪标记字段,则查询缓存中是否存在被退邮件的退信防伪标记字段;

若缓存中不存在被退邮件的退信防伪标记字段,则识别外域邮件为垃圾邮件;

若缓存中存在被退邮件的退信防伪标记字段,则识别外域邮件为正常邮件。

作为一种可选的实施方式,邮件接收服务器220还用于:

接收外域发送的外域邮件,并识别外域邮件是否为退信;

当识别外域邮件为退信时,获取退信中携带的被退邮件的信头。

作为一种具体的实施方式,邮件接收服务器220具体用于:

接收外域发送的外域邮件,并解析外域邮件;

判断外域邮件的主题中是否包含退信关键字;

若外域邮件的主题中包含退信关键字,则判断外域邮件是否符合mime协议规定的退信格式;

若外域邮件符合mime协议规定的退信格式,则识别外域邮件为退信。

本实施例提供的系统可以执行上述方法实施例,其实现原理与技术效果类似,此处不再赘述。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中所述的方法。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1