PHP-скрипт для массовой верификации email

rafaello

Новичок
Привет!
Вот есть класс:
https://code.google.com/p/php-smtp-email-validation/source/browse/trunk/smtp_validateEmail.class.php
для одиночной проверки все работает
https://code.google.com/p/php-smtp-email-validation/source/browse/trunk/example1.php
а вот для массовой проверки
https://code.google.com/p/php-smtp-email-validation/source/browse/trunk/example2.php
выдает ошибки:
Код:
PHP Warning:  fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/mail1/smtp_validateEmail.class.php on line 154
PHP Warning:  fsockopen(): unable to connect to mail.rurn:25 (php_network_getaddresses: getaddrinfo failed: Name or service not known) in /var/www/mail1/smtp_validateEmail.class.php on line 154
PHP Notice:  Undefined variable: user in /var/www/mail1/smtp_validateEmail.class.php on line 212
Мне необходимо проверять е-мейл адреса списком (массово). Подскажите, что здесь не так?
Спасибо!
 

AnrDaemon

Продвинутый новичок
Всё не так.
PHP:
      if(!getmxrr($ta[0], $mailhost))
        throw new Exception("No MX RR found for {$_d['email']}.", 0);
 

rafaello

Новичок
Предположим, список состоит из 4 емейл адресов.
PHP:
foreach($domains as $domain){
.......
if(!getmxrr($domain, $hosts, $mxweights))
{throw new Exception("No MX RR found for {$domain}.", 0);}else{print_r($hosts);}
.......
}
Выдает:
Код:
No MX RR found domain1
No MX RR found domain2
No MX RR found domain3
Array ( [0] => mx.yandex.ru )
Получается, что цикл перебирает массив хостов, а getmxrr(); просто не успевает получить ответ от ДНС, и только на последнем цикле этот ответ получает.
Возникает закономерный вопрос.
Как перебрать массив хостов так, чтобы в каждом случае, пока не получен ответ ДНС, не переходить к следующей итерации?
 

rafaello

Новичок
убить себя ап стенку, наверное
Как перебрать массив хостов так, чтобы в каждом случае, пока не получен ответ ДНС, не переходить к следующей итерации?
Нет, ну серьезно! Помогите новичку понять этот момент! Вообще, такое возможно?
 

AnrDaemon

Продвинутый новичок
Как перебрать массив хостов так, чтобы в каждом случае, пока не получен ответ ДНС, не переходить к следующей итерации?
Представь себе, getmxrr не перейдёт к следующей итерации, пока не получит ответ от DNS. Либо пока не истечёт таймаут ответа.
 

rafaello

Новичок
Блин, пока своими руками не прощупал каждую закорючку, ..... и все-таки я нашел ошибку!!!
Сами разработчики не дописали trim(); и поэтому название домена подставлялось с пробелами в getmxrr();, ну и понятно дело, что getmxrr(); не определял МХ.
Мужики, спасибо за помощь!
Особое спасибо, господину grigori. Прав он все таки.
 
Сверху