Indy中判断邮件来源

首先从TidMessage中获得邮件的头信息:

strHeader:=aIdMessage.Headers.text;

然后,用正则表达式取出Received:

vReceiveIP:=GetNeedStrByPerlReg(strHeader,'(Received:)(.+)(])');

再取出X-Originating-IP:
    vOriIP:=GetNeedStrByPerlReg(strHeader,'(X-Originating-IP:)(.+)(])');

再取出方括号[]中的IP地址,这样就会获得两个IP,根据这两个IP查询IP地址数据库可以判断出邮件的来源。

注意,并不是所有邮件都会有这两个信息,并且有时这两个IP信息也可能是假的,关于具体的判断是比较复杂的,这里只是一个简单的办法,并且得出的结果仅供参考。

具体邮件来源的判断,请参考引用的一篇文章:

http://garfieldtom.spaces.live.com/blog/cns!7FAB2A2238E574BC!431.entry

原文地址:https://www.cnblogs.com/GarfieldTom/p/1413300.html