Определение, вероятно, страны происхождения электронного письма - PullRequest
1 голос
/ 31 июля 2011

Я создаю почтовое приложение (веб-приложение, с которым вы взаимодействуете почти исключительно по электронной почте), и я хотел бы иметь возможность сделать разумное предположение относительно того, откуда мои пользователи используют только свои заголовки электронной почты. (Я твердо верю, что «настройки по умолчанию» в веб-сервисах должны быть максимально разумными!)

Кто-нибудь с приличным знанием современной маршрутизации электронной почты (например, супер-провайдеры, такие как Google, Yahoo и т. Д.) Имеет какие-либо хорошие идеи относительно того, как извлечь страну пользователя из электронной почты с разумной степенью точности и, если возможно, приблизительное указание на то, насколько точным это было бы, поэтому я могу игнорировать предположение, если оно вряд ли будет правильным?

Идеи до сих пор:

  • Часовой пояс (недостаточно точный, но полезный)
  • TLD домена электронной почты (не очень надежный, у меня есть домен .com и я британец)
  • GeoIP IP-адресов в заголовке электронной почты (не совсем уверен, будет ли это работать, какой заголовок будет наиболее надежным?)

Спасибо за ваши головные циклы!

Ответы [ 2 ]

2 голосов
/ 31 июля 2011

Другой вариант - отправить им электронное письмо с подтверждением / подтверждением, содержащее изображение HTML, которое загружается с вашего удаленного сервера со специальным идентификатором.Если у пользователя включена HTML-почта, то он загрузит изображение, таким образом отправив соответствующую информацию (например, свой IP-адрес) на ваш сервер, чтобы вы могли выполнить гео-поиск.

В качестве альтернативы вы можете попросить его щелкнуть ссылку подтверждения ввторичный, если ваш сервер не может правильно определить страну происхождения.

2 голосов
/ 31 июля 2011

"обычная" почта

Однажды я написал плагин Thunderbird , который делает то же самое и использует исключительно домены верхнего уровня для отображения станции каждого маршрута.Извлеченный урок заключается в том, что почта может проходить через 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 - whois на этом IP-адресе дает нам (правильно) Германию в качестве источника почты.

Другой пример, только первая запись:

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, правильный 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-адрес отправителя, и единственная информация, которую вы получаете, - это IP-адрес почтового сервера Google.Часовой пояс есть также зона сервера, а не часовой пояс клиента - это будет +02: 00.

вывод

В конце концов, ни один сигнал не дает вам 100% точностии вы должны нанять их всех.Кроме того, каждый бит в письме может быть подделан - не забывайте это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...