find us on facebook!
 

Технологии проверки адресов

Технологии проверки адресов

Для проверки существования адреса электронной почты нужно выполнить те же два этапа, которые выполняет почтовый сервер доставляя письмо адресату (см. предыдущий раздел ). Во-первых, надо определить адрес сервера, принимающего почту для этого адресата. Во-вторых, надо соединиться с почтовым сервером, и "спросить" его, может ли он принять письмо для пользователя с таким-то электронным адресом.

К сожалению, при помощи этого метода удается определить только около 2/3 несуществующих адресов, а оставшуюся часть несуществующих адресов определить программными методами невозможно. Проблема в том, что некоторые почтовые сервера настроены так, что они принимают все письма для своего почтового домена, но если указанного ящика в домене не существует, то сервер посылает отправителю ответ по электронной почте с сообщением, что полученное им письмо он не может доставить.

По имеющейся статистике, из этих 2/3 несуществующих адресов, около 30% несуществующих адресов выявляется на первом этапе проверки, и 70% на втором этапе. Второй этап проверки в среднем требует в 10 раз больше времени и в пять раз больше сетевого трафика, чем первый этап. Практически, двухэтапная проверка требует почти столько же времени и трафика, сколько и отправка небольшого письма на проверяемый адрес.

Рассмотрим подробнее оба этапа. На первом этапе проверяющая программа выполняет синтаксический разбор адреса электронной почты, выделяет почтовый домен и отправляет запрос к серверу DNS на получение адреса почтового сервера для этого домена. Работа с сервером DNS осуществляется по протоколу UDP, этот протокол более быстр, чем протокол TCP, так как он не ориентирован на установление соединения между серверами. Обычно, время выполнения запроса к серверу DNS не превышает 1..2 секунд, и за это время отправляется один пакет с запросом (около 60 байт, вместе с заголовком пакета) и принимается один пакет с ответом (не более 512 байт; обычно не более 200..300). Соответственно, на этом этапе отсеиваются все синтаксически неверные адреса, и адреса с несуществующих доменов.

На втором этапе осуществляется подключение к почтовому серверу по протоколу SMTP (базирующемся на TCP). Протокол TCP ориентирован на соединение, поэтому вначале соединяющиеся сервера отправляют служебные пакеты для установления соединения. После установления соединения, сервера обмениваются приветствиями (см. первые три строки в журнале ниже); затем сообщается адрес отправителя, и принимающий сервер подтверждает, что готов принять почту с такого адреса; после чего сообщается адрес получателя письма:

< 220-ns.watson.ibm.com ESMTP Sendmail AIX4.3/8.9.3/8.9.0
< 220 Thu, 22 Aug 2002 20:44:07 +0500
> HELO cisco.my.net
< 250-ns.watson.ibm.com Hello cisco.my.net [12.44.72.94],
< 250 pleased to meet you
> MAIL FROM:<verify@testmail.com>
< 250 <verify@testmail.com>... Sender is valid.
> RCPT TO:<noshuchaddress@ibm.com>
< 550 <noshuchaddress@ibm.com>... User unknown
> RSET
< 250 Resetting the state.
> QUIT

В данном случае, принимающий сервер ответил, что ему неизвестен пользователь с адресом noshuchaddress@ibm.com и отказался принимать для него почту, и после этого сервера обменялись командами для завершения соединения. Сервера во время проверки адреса в сумме послали друг другу десять сообщений, суммарным размером около 500 байт; но для их пересылки потребовалось обменяться более чем 20 пакетами, и суммарный трафик составил около двух килобайт. Причем большую часть времени заняло ожидание ответа от другого сервера.

Наша компания предлагает два программных продукта для проверки адресов электронной почты на существование — Advanced Maillist Verify (AMV), которая выполняет проверку в два этапа, и High Speed Verifier (HSV), которая выполняет только первый этап проверки.

AMV предлагается как средство качественной проверки небольших (не более 50..100 тысяч адресов) списков рассылки. Advanced Maillist Verify также умеет проверять адреса в базах данных, адресных книгах популярных программ, имеет интерфейсы COM/ActiveX для интеграции в различное программное обеспечение и модули CGI/ISAPI для упрощенной интеграции в веб-сервера. Но технические принципы и заложенные в AMV интерфейсные решения не позволяют использовать программу для проверки списков большей длинны.

High Speed Verifier предлагается как решение для быстрого удаления мусора из многомиллионных списков. Ее производительность в силу число технических причин в 10..15 раз превосходит производительность AMV на небольших списках, а на списках с миллионами адресов производительность программ может уже отличаться в сотни раз. Рост производительности HSV при увеличении длинны проверяемого списка объясняется тем, что HSV кэширует в оперативной памяти результаты всех запросов к серверам DNS, и чем длиннее проверяемый список, тем выше процент попаданий в кэш.



 
(c) EMMA Labs, 2019 | Мы против спама