За последние 24 часа нас посетили 17572 программиста и 1711 роботов. Сейчас ищут 1767 программистов ...

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

Тема в разделе "Работа с почтой", создана пользователем rafaello, 8 ноя 2015.

  1. rafaello

    rafaello Активный пользователь

    С нами с:
    5 сен 2014
    Сообщения:
    17
    Симпатии:
    0
    Привет!
    Вот есть класс:
    https://code.google.com/p/php-smtp-email-validation/source/ ... .class.php
    для одиночной проверки все работает
    https://code.google.com/p/php-smtp-email-validation/source/ ... ample1.php
    а вот для массовой проверки
    https://code.google.com/p/php-smtp-email-validation/source/ ... ample2.php
    выдает ошибки:
    Код (Text):
    1. PHP Warning:  fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/mail1/smtp_validateEmail.class.php on line 154
    2. 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
    3. PHP Notice:  Undefined variable: user in /var/www/mail1/smtp_validateEmail.class.php on line 212
    Мне необходимо проверять е-мейл адреса списком (массово). Подскажите, что здесь не так?
     
  2. rafaello

    rafaello Активный пользователь

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