Как проверить, принадлежит ли адрес электронной почты Gmail

Я создаю функцию, использующую API Google для импорта контактов из учетной записи gmail человека. Однако мне известно, что многие компании регистрируются в Google, чтобы иметь более профессиональное доменное имя (например, [email protected]), но все же принадлежит Gmail.

Есть ли способ проверить это?


person zheng    schedule 13.10.2011    source источник
comment
Я обновил свой ответ другим вариантом, потенциально более точным.   -  person lunixbochs    schedule 18.11.2011


Ответы (2)


Вариант 1

если вы выполните поиск в DNS записей MX на bislr.com, вы получите следующее:

$ host -t mx bislr.com
bislr.com mail is handled by 10 aspmx.l.google.com.
bislr.com mail is handled by 20 alt1.aspmx.l.google.com.
bislr.com mail is handled by 20 alt2.aspmx.l.google.com.
bislr.com mail is handled by 30 aspmx2.googlemail.com.
bislr.com mail is handled by 30 aspmx3.googlemail.com.
bislr.com mail is handled by 30 aspmx4.googlemail.com.
bislr.com mail is handled by 30 aspmx5.googlemail.com.

Любой хостинг электронной почты в Google Apps будет иметь записи MX, очень похожие на эти. Вы можете выполнить поиск MX с помощью любого распространенного механизма DNS и протестировать записи MX для наиболее рекомендуемых почтовых серверов Google - aspmx.l.google.com, alt1.aspmx.l.google.com и alt2.aspmx.l.google. .com, или найдите любой / все серверы в этом списке.

Это не покажет вам никого, кто использует внешнюю службу пересылки / фильтрации, но он будет работать во всех распространенных случаях.

Вариант 2

Вы можете подключиться к почтовому серверу, чтобы проверить, будет ли он принимать почту на определенный адрес. Используя это, мы можем подключиться к asmpx.l.google.com и спросить его, является ли адрес действительной учетной записью Google Mail.

Если вы подключаетесь к aspmx.l.google.com:25 и отправляете эту строку (при необходимости замените адреса электронной почты):

HELO
MAIL FROM:<[email protected]>
RCPT TO:<[email protected]>

Почтовый сервер Google ответит кодом состояния smtp, возможно, строкой, начинающейся с чего-то вроде 250 2.1.5 OK, если это действительный адрес. Это более чистый и гораздо более надежный способ, чем простая проверка записей DNS, и он должен работать до тех пор, пока вы не занесете проверяемый IP-адрес в черный список, используя его для отправки фактического спама в Gmail.

Вот полное пошаговое руководство по процессу.

person lunixbochs    schedule 13.10.2011

Вы не можете быть уверены.

Проверка записи MX, описанная @lunixbochs, охватывает большинство случаев, но многие корпорации будут использовать Postini с разными доменными именами. Они также могут использовать любое количество других механизмов предварительной обработки почты, которые будут скрывать записи aspmx.

Еще один способ проверить, есть ли у них активное доменное имя:

curl http://www.google.com/a/DOMAINNAME | grep "домен, который не использует Google Apps"

Используйте выбранный вами язык / библиотеку вместо curl для получения URL ...

person Jan Z    schedule 16.10.2011
comment
Я не уверен, почему кто-то может использовать postini (механизм фильтрации почты Google) в Gmail (механизм фильтрации почты Google). Я обновил свой на более надежный ненавязчивый вариант. Вы, вероятно, получите брандмауэр от Google, если будете очищать их страницу с ошибкой в ​​поисках действительных доменов. - person lunixbochs; 18.11.2011
comment
Многие компании делают это, и в исходном вопросе конкретно упоминались Google Apps. Получите ли вы страницу с автоматическими запросами, очевидно, это зависит от уровня вашего трафика; для большинства сценариев это нормально, если вы не сканируете десятки тысяч доменов в день. Ваш вариант 2 лучше, но требует, чтобы у вас был известный действующий адрес электронной почты - это нормально в описанном сценарии, но может отсутствовать в других ... - person Jan Z; 19.11.2011
comment
Повторное сканирование страницы входа в Google почти наверняка приведет к расследованию и блокировке вашего использования, и на него не следует полагаться в производственной системе. - person lunixbochs; 20.11.2011