Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка E-mail 
:(
    Опции темы
MeIsGremlin
  Дата 7.4.2006, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Доброго времени суток, Кто знает как проверить при помощи php существование почтового адреса? То есть мне просто нужно знать существует он или нет. Пару классов которые я отрыл подсоединяются к нему через imap и там нужен пароль. Что в общем не то что мне нужно.
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
Danox
Дата 8.4.2006, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


=)
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 28.1.2006

Репутация: 1
Всего: 2



Функция проверки существования сервера в введенном адресе электронной почты
Cepera:
Код

function checkemailserver($email) {
 if (eregi("^[_\.0-9a-z-]+@([0-9a-z][-0-9a-z\.]+)\.([a-z]{2,3}$)", $email, $check)) {
  if (getmxrr($check[1].".".$check[2],$temp)) return true;
  else return false;
 }
 else return false;
}

PM MAIL   Вверх
ZlojEzh
Дата 8.4.2006, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 10
Всего: 15



если помимо существования хоста надо проверить еще и существование такого пользователя - можно законнектиться через smtp и дать серверу комманду
Код

VRFY _user_name_


варианты ответа сервера можно посмотреть здесь
PM MAIL ICQ   Вверх
MeIsGremlin
  Дата 10.4.2006, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Цитата(Danox @ 8.4.2006, 13:29)
Функция проверки существования сервера в введенном адресе электронной почты
Cepera:
Код

function checkemailserver($email) {
 if (eregi("^[_\.0-9a-z-]+@([0-9a-z][-0-9a-z\.]+)\.([a-z]{2,3}$)", $email, $check)) {
  if (getmxrr($check[1].".".$check[2],$temp)) return true;
  else return false;
 }
 else return false;
}

Эта функция просто проверяет есть ли mail.ru например. Но а как проверить есть ли какой-то [email protected] ?
Добавлено @ 15:53
Цитата(ZlojEzh @ 8.4.2006, 13:39)
если помимо существования хоста надо проверить еще и существование такого пользователя - можно законнектиться через smtp и дать серверу комманду
Код

VRFY _user_name_


варианты ответа сервера можно посмотреть здесь

Эта команда может быть отключена. И подсоединиться к smtp кажется можно в php при помощи imap_open? правильно ? Но опять же нужен пароль.

Это сообщение отредактировал(а) MeIsGremlin - 10.4.2006, 15:56
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
ZlojEzh
Дата 10.4.2006, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 10
Всего: 15



Цитата(MeIsGremlin @ 10.4.2006, 15:48 Найти цитируемый пост)
И подсоединиться к smtp кажется можно в php при помощи imap_open?

я бы все через сокеты делал

коннектишься на порт smtp
и пытаешься послать письмо пользователю, имя которого надо проверить:

Код

S: MAIL FROM:<здесь вписываем какой-нить емейл адрес>
R: 250 OK

S: RCPT TO:<здесь подставляем проверяемы мейл>


в ответ получаешь одну из следующих строк
Код

R: 250 OK
R: 251 User not local; will forward to <_ куда-то там _>
R: 551 User not local; please try <_ чего-то там _>

PM MAIL ICQ   Вверх
MeIsGremlin
Дата 10.4.2006, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Надо будет попробовать.
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
MeIsGremlin
  Дата 11.4.2006, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Цитата(ZlojEzh @ 10.4.2006, 19:40)
Цитата(MeIsGremlin @  10.4.2006,  15:48 Найти цитируемый пост)
И подсоединиться к smtp кажется можно в php при помощи imap_open?

я бы все через сокеты делал

коннектишься на порт smtp
и пытаешься послать письмо пользователю, имя которого надо проверить:

Код

S: MAIL FROM:<здесь вписываем какой-нить емейл адрес>
R: 250 OK

S: RCPT TO:<здесь подставляем проверяемы мейл>


в ответ получаешь одну из следующих строк
Код

R: 250 OK
R: 251 User not local; will forward to <_ куда-то там _>
R: 551 User not local; please try <_ чего-то там _>

А можно небольшой пример этого? Я так понял нужно на какой-то свой сервер подключатсья и от туда отправлять запросы. А есть что-то менее хитрозакрученное?
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
ZlojEzh
Дата 12.4.2006, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 10
Всего: 15



вот, накатал сходу
еще не проверял
Код

$email = "[email protected]" // ;-)
list($login,$server) = explode('@',$email);
$fp = fsockopen($server, 25, $errno, $errstr, 30);
if (!$fp) {
   die("$errstr ($errno)<br />\n");
} else {
   fwrite($fp,'MAIL FROM:<[email protected]>');
   fgets($fp);
   fwrite($fp,'RCPT TO:<'.$email.'>');   
   $resp = fgets($fp);
   if (preg_match("#250#A",$resp)) {
      print "e-mail ok\n";
   } else {
      print "e-mail bad\n";
   }
   fclose($fp);
}


только сейчас заметил одну проблему - реальное имя смтп-сервера может не совпадать со второй частью емейла
как бороться, пока не знаю...

Это сообщение отредактировал(а) ZlojEzh - 12.4.2006, 01:20
PM MAIL ICQ   Вверх
MeIsGremlin
Дата 13.4.2006, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Смотри что получается

telnet smtp.mail.ru 25
Trying 194.67.23.111...
Connected to smtp.mail.ru.
Escape character is '^]'.
220 mail.ru ESMTP Thu, 13 Apr 2006 18:45:48 +0400
helo smtp.mail.ru
250 mx5.mail.ru Hello smtp.mail.ru [217.77.214.110]
auth login
334 VXNlcm5hbWU6
ZXRvIG1vZSBtaWxv
334 UGFzc3dvcmQ6
QSB4eWkgdGViZQ==
235 Authentication succeeded
helo smtp.mail.ru
250 mx5.mail.ru Hello smtp.mail.ru [217.77.214.110]
MAIL FROM:[email protected]
250 OK
RCPT TO:[email protected]
250 Accepted
Data
354 Enter message, ending with "." on a line by itself
hello man
.
250 OK id=1FU36d-000MxY-00
quit

После этого приходит mail delivery system ко мне на [email protected] ну эт что мне теперь парсить новые сообщения и смотреть не mail delivery system ли они? как-то неправильно. Да и таких как прийдет. Ящика не хватит
Обратил внимаение на
RCPT TO:[email protected]
250 Accepted
Оно его приняло.
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
ZlojEzh
Дата 13.4.2006, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 10
Всего: 15



коннектиться надо не на свой smtp-сервер, а на тот, где надо ящик проверить
в твоем примере - на geeksforless.net

другой сервер будет принимать письмо и перенаправлять его дальше
но тут возникает другая проблема: сервер может попросить логин-пароль
как с бороться с таким вариантом пока не знаю

будем подумать...

PM MAIL ICQ   Вверх
MeIsGremlin
Дата 17.4.2006, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Та не ты перепутал наверно. Я на mail.ru  соединяюсь и отправляю письмо на несуществующий адрес с mail.ru  на geeksforless.net и мне на mail.ru приходит письмо что  [email protected] не существует. Но во время  соединения с smtp  адрес принимается 
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0608 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.