Как проверить, действительно ли адрес электронной почты действителен, не отправив ему что-либо?

У меня есть клиент с 5000 электронными письмами из старого списка, который у него есть, что он хочет продвигать свои услуги. Он хочет знать, какие письма в списке все еще актуальны. Я хочу проверить их для него - без отправки по электронной почте 5K случайно, а затем перечисляться как спамер или что-то в этом роде. Идеи?

Ответы

Ответ 1

Ответ bucabay - это путь вперед. То, что по существу такая библиотека, это проверка существующей записи DNS для (почтовых) серверов в указанных доменах (A, MX или AAAA). После этого он выполняет так называемую проверку обратного вызова. Что, когда вы подключаетесь к почтовому серверу, скажите, что вы хотите отправить на конкретный адрес электронной почты и посмотреть, говорят ли они "ОК".

Для проверки обратного вызова вы должны заметить, что серверы greylisting говорят "ОК" ко всему, поэтому нет 100% -ной гарантии, без фактической отправки электронных писем. Вот код, который я использовал, когда делал это вручную. Это патч на парсер адресов электронной почты из здесь.

    #
    # Email callback verification
    # Based on http://uk2.php.net/manual/en/function.getmxrr.php
    #

    if (strlen($bits['domain-literal'])){
        $records = array($bits['domain-literal']);
    }elseif (!getmxrr($bits['domain'], $mx_records, $mx_weight)){
        $records = array($bits['domain']);
    }else{
        $mxs = array();

        for ($i = 0; $i < count($mx_records); $i++){
            $mxs[$mx_records[$i]] = $mx_weight[$i];
        }

        asort($mxs);

        $records = array_keys($mxs);
    }

    $user_okay = false;
    for ($j = 0; $j < count($records) && !$user_okay; $j++){
        $fp = @fsockopen($records[$j], 25, $errno, $errstr, 2);
        if($fp){
            $ms_resp = "";

            $ms_resp .= send_command($fp, "HELO ******.com");
            $ms_resp .= send_command($fp, "MAIL FROM:<>");

            $rcpt_text = send_command($fp, "RCPT TO:<" . $email . ">");
            $ms_resp .= $rcpt_text;

            $ms_code = intval(substr($rcpt_text, 0, 3));
            if ($ms_code == 250 || $ms_code == 451){ // Accept all user account on greylisting server
                $user_okay = true;
            }

            $ms_resp .= send_command($fp, "QUIT");

            fclose($fp);
        }
    }

return $user_okay ? 1 : 0;

Ответ 2

Вы можете проверить электронную почту через SMTP, не отправляя фактическое электронное письмо.

http://code.google.com/p/php-smtp-email-validation/

Вы также можете отправить электронные письма и проверить наличие отскоков.

Ответ 3

Думаю, вам нужно отправить электронные письма, чтобы узнать. Кроме того, это в значительной степени то, что означает спамер, поэтому причина для включения в списки спамеров. Отправка пакетов может помочь вам скрыть этот факт.

Ответ 4

Вам придется отправлять по электронной почте хотя бы один раз.

  • Создайте новый список адресов электронной почты. Отправьте старый список по электронной почте с необходимой им ссылкой, чтобы продолжить получать сообщения (переписывать).
  • Отправляйте им все сообщения электронной почты и собирайте ответы от ответа на настоящую учетную запись электронной почты, а затем очищайте полученные письма от вашего основного списка.
  • Отправляйте им все электронные письма в формате HTML, а одно из изображений размещается удаленно и требует уникального идентификатора, чтобы запросить его в каждом письме. Когда ваш веб-сервер вернет это изображение своему клиенту, вы можете считать это сообщение активным. Это называется веб-ошибка и будет работать только в том случае, если пользователь автоматически загружает удаленные изображения в своем клиенте.

Ответ 5

https://github.com/kamilc/email_verifier - это рубигем, который будет проверять наличие записи MX и что SMTP-сервер говорит, что адрес имеет действительный почтовый ящик.

Ответ 6

Для этого вы можете использовать платный сервис, например Kickbox.

Ответ 7

Вы можете рассмотреть службу MailboxValidator http://www.mailboxvalidator.com/, которая должна соответствовать вашим требованиям. Вы можете получить либо массовый план, где вы можете загрузить CSV файл, содержащий ваш список адресов электронной почты, или получить план API, если вам требуются программные интеграции.