检测可能的电子邮件来源国

时间:2011-07-31 04:44:20

标签: email geolocation

我正在构建一个电子邮件应用程序(一个几乎完全通过电子邮件与您交互的网络应用程序),我希望能够合理地猜测我的用户只使用他们的电子邮件标题。 (我坚信网络服务中的'默认'应该尽可能聪明!)

对现代电子邮件路由具有良好知识的人(例如谷歌,雅虎等超级提供商)是否有任何好的想法,如何从电子邮件中提取用户的国家,并且如果可能的话,这是多么准确的粗略指示,所以如果它不可能是正确的,我可以忽略猜测?

到目前为止的想法:

  • 时区(远不够准确,但很有用)
  • 电子邮件域名TLD(不太可靠,我有.com TLD,我是英国人)
  • 电子邮件标头中IP的GeoIP(不确定这是否可行,哪个标头最可靠?)

感谢您的头脑周期!

2 个答案:

答案 0 :(得分:2)

“普通”邮件

我曾经写过一个thunderbird plugin做同样的事情,它只使用顶级域来显示每条路线的电台。从中吸取的教训是,邮件可能会超过10台或更多服务器,直到它到达收件人。您必须使用第一个路径条目:

Received: by mail.cweiske.de (Postfix, from userid 65534)
    id 1DB83119102DA; Sat, 30 Jul 2011 13:58:30 +0200 (CEST)
Received: from fmmailgate02.web.de (fmmailgate02.web.de [217.72.192.227])
    by mail.cweiske.de (Postfix) with ESMTP id D56F6119102D3
    for <me@example.orge>; Sat, 30 Jul 2011 13:58:18 +0200 (CEST)
Received: from smtp03.web.de  ( [172.20.0.65])
    by fmmailgate02.web.de (Postfix) with ESMTP id E54B11A74B6A1
    for <me@example.org>; Sat, 30 Jul 2011 13:57:52 +0200 (CEST)
Received: from [84.185.130.22] (helo=[192.168.178.21])
    by smtp03.web.de with asmtp (WEB.DE 4.110 #2)
    id 1Qn88O-0006jw-00
    for me@example.org; Sat, 30 Jul 2011 13:55:14 +0200

在这种情况下,发件人是84.185.130.22 - 该IP上的whois给我们(正确)德国作为邮件来源。

另一个例子,仅限第一个条目:

Received: from carnot.localnet (ip-118-90-104-106.xdsl.xnet.co.nz
[118.90.104.106])
by ananke.wxnz.net (Postfix) with ESMTP id D758D17002B
for <me@lists.sourceforge.net>;
Sun, 31 Jul 2011 10:08:57 +1200 (NZST)

甚至包含.nz作为已解析的主机名 - 这次正确新西兰。 whois也给你新西兰。

的webmail

你必须检查来自gmail web界面的邮件是否也包含正确的IP,我怀疑。来自gmail的一个例子:

Received: from mail-wy0-f179.google.com (mail-wy0-f179.google.com [74.125.82.179])
    by mail.cweiske.de (Postfix) with ESMTP id A739A11910543
    for <me@example.org>; Wed, 23 Jun 2010 23:05:42 +0200 (CEST)
Received: by wyb38 with SMTP id 38so1740851wyb.24
        for <me@example.org>; Wed, 23 Jun 2010 14:05:42 -0700 (PDT)

此处完全缺少发件人IP,您获得的唯一信息是来自Google邮件服务器的IP。时区也是服务器的区域,而不是客户端的时区 - 它将是+02:00。

结论

最后,没有信号可以提供100%的准确性,您必须使用所有信号。 此外,电子邮件中的每一位都可能是伪造的 - 不要忘记。

答案 1 :(得分:2)

另一种方法是向他们发送一封确认/验证电子邮件,其中包含一个HTML图像,该图像使用特殊标识符从远程服务器加载。如果用户启用了HTML邮件,那么他们将下载图像,从而将适当的信息(例如他们的IP)发送到您的服务器,以便您进行地理查找。

或者,如果您的服务器无法正确确定其来源国,您可以要求他们点击辅助服务器中的确认链接。