【摘要】 我们发现,当我们向163或者向yahoo发邮件的时候,经常会收到一个退信,退信的内容大致是,错误代码450或者是4xx,“请求不能响应”、“系统繁忙”、“资源临时不可用”、“请稍后再次尝试发送”等。 【全文】
我们发现,当我们向163或者向yahoo发邮件的时候,经常会收到一个退信,退信的内容大致是,错误代码450或者是4xx,“请求不能响应”、“系统繁忙”、“资源临时不可用”、“请稍后再次尝试发送”等。
例如: 450 Requested action not taken:mx5, SMCsT3ZRskOQB34H.33714S2, please try again,SCORE
遇到这类情形,我们基本可以认为,这是接收方邮件系统使用了一种叫做“Hurdle”的反垃圾邮件技术 。
接下来,小生说说这种技术的原理。 使用了“Hurdle”技术的系统,在收到一个陌生的邮箱发过来的一个邮件时,会把这个邮件暂时“扣押”(姑且这么说),并作上记号。同时,系统用退信的方式告诉发件方,我“现在繁忙”、“不能响应请求”,“请稍后再次尝试发送”。 如果,发送方是垃圾邮件发送器,则不会收到这个退信。如果是邮件服务器收到这个返回的信息,通常情况就会对这个退信中的4xx的错误代码做出响应,再次发送。 接收方服务器收到这个再次发来的邮件,就会和上次“扣押”的邮件进行比较,如果两者一样,那么接收方服务器就认为这个邮件不是垃圾邮件,并分发到用户邮箱中,同时,将此发信人列入白名单,下次直接放行。
这里有一点例外:由于RFC协议并没有要求对4xx的错误代码做出什么样的反应。因此,部分邮件服务器软件会视此错误代码为接收方服务器故障而直接退信给用户,不再进行发送尝试。
这种方法显然能够阻挡很多垃圾邮件,但同时也具有比较严重的缺点: 1,会造成邮件的延迟。 2,误判有用邮件为垃圾邮件,即对于那些对4xx错误代码不在尝试发送的邮件服务器,将无法给这个系统发邮件。
针对上面第二个缺点,“Hurdle”通常用白名单来进行解决。如果您的服务器恰好对4xx的错误不尝试再次发送的话,可以联系接收方,要求将自己列入白名单,以确保自己的邮件不被误判为垃圾邮件。
|