Проверка на существование адреса электронной почты

iakobi91

Как это сделать средствами php или чего-то наподобие?

gopnik1994

проверка на существование почты делается всегда стандартно:
послать на указанный ящик случайно сгенеренный пароль от логина или ссылку активации логина.

iakobi91

Да это я знаю, но вроде видел где-то, что при попытке ввода галимого адреса сайт ругается на это

ifani

обычно ругаются, если строка заведомо не может быть емылом (например, нету @ или .)

viktor954

А сделать dns_check_record на домен, указанный после @?

boris1963-11

Это не даст ответа вообще. Только отсеет малую частьслучаев.

spirinale

похоже, что кроме предложенного хеготом, ничего сделать нельзя (чтоб корректно работало)

eduard615

http://perl.com/CPAN/authors/Tom_Christiansen/scripts/ckaddr.gz
особенно рюхать регэксп в конце

spirinale

можно в кратце: какой там принцип использован?

eduard615

проверка днс, проверка на всякие адреса типа gov., проверка адреса на соответсвие rfc822 (это самое интересное)

katrin2201

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

iakobi91

Вопрос в том, как это програмно описать

psihodog

Секьюрные почтовые сервера обычно так не делают: они принимают письмо, и уж потом смотрят получится доставить или нет. Если я не ошибаюсь, qmail так настроен по-умолчанию, postfix -- не по умолчанию, но настраивается.

Ivan8209

В отношении qmail не ошибаешься.
---
...Я работаю антинаучным аферистом...

spirinale

мне кажется это неоправданной тратой траффика: все равно на указанный в mail from адрес нужно будет ответить в случае, если адреса в rcpt to не существует.

Ivan8209

А значит, надо принимать почту от неизвестных?
---
"Никогда не разговаривайте с неизвестными."

spirinale

не совсем понял твой вопрос: что именно значит? Мой пост несколько про другое: про то, что мне кажется намного более оправданным отвечать 550 на rcpt to с неправильным аресом/почтовым ящиком (т.е. на который МТА не может доставить письмо нежели принимать письмо полностью, чтоб потом отвечать отправителю, что такое письмо не может быть доставлено.
насчет твоего вопроса: принимать почту от неизвестных - то есть клиентов, для которых не найдена PTR запись (я так понял "неизвестные") - стоит, как минимум, на и , а остальное - дело личных предпочтений/требований для конкретного сервера.

mysha

а если сервер не знает - есть ли такой адрес?
может это простой relay

spirinale

1. есть туева хуча методов проверки наличия такого адреса для релеев
2. если не хочется делать верификацию - то прием почты для любого ящика в доменах, которые релеит сервак, хоть и не совсем рационален с точки зрения траффика, экономит "думательные ресурсы" (с)

Ivan8209

Про PTR разумно.
Про 550:

helo not-spammer.com
mail from:<nnot-spammer.com>
rcpt to:<there.ru>
rset
...
Ещё неясно, что хуже.
---
...Я работаю антинаучным аферистом...

spirinale

про 550: ты привел одну из возможных последовательностей запросов смтп-клиента, да.
А почему хуже - не понятно

Ivan8209

Раскрываются существующие адреса.
А если приходит спам, который распознаётся как спам,
то на него ведь можно и не отвечать. Или что не так?
---
...Я работаю антинаучным аферистом...

spirinale

кем распознается как спам? насколько я знаю, нет ни одного _автоматического_ способа определения спама со 100% вероятностью. всегда есть вероятность того, что что-то сглюкнуло: днс, линк куда-либо, почтовик и т.п.
поэтому, если принял письмо и не смог доставить, отвечать стОит всегда.
то, что спамеры так перебирают адреса, это и так понятно, другое дело, что можно им осложнить задачу. Например: после 1ой ошибки делаешь задержку перед ответом 20 секунд, после 3х ошибок - рвешь сессию.

Ivan8209

Тогда стоит вообще --- отменить "rset".
---
"Пущай полетает!"

spirinale

можно, но это ситуацию не сильно изменит

Ivan8209

"Отменить" там означало "перебить на quit".
---
...Я работаю антинаучным аферистом...

spirinale

а вот подмены команд делать точно не надо (мы же соблюдаем стандарты?)
ты еще предложи подменить mail from на забивание ящика указанного в этой команде последовательностью байт из /dev/random

Ivan8209

Если этой командой пользуются только хакеры и спамеры,
то можно свободно отключать.
И плевать на стандарты.
---
...Я работаю антинаучным аферистом...

spirinale

наплевать и попасть в rfc-ignorant список ...
особой пользы от пользования этой команды нет (для спамера)
иногда даже проще сделать новую сессию, чем резетать имеющуюся
Оставить комментарий
Имя или ник:
Комментарий: