Hlavní navigace

Názor k článku PHP okénko: Kontrola e-mailové adresy od Neviem - A ako mam vypisat ze neplatny email z...

  • Článek je starý, nové názory již nelze přidávat.
  • 26. 12. 2011 23:46

    Neviem (neregistrovaný)

    A ako mam vypisat ze neplatny email z toho?

    <?php
    /** Odeslání příkazů SMTP serveru
    * @param resource otevřený socket k SMTP serveru
    * @param array příkazy k odeslání
    * @return bool false v případě, že některý příkaz nevrátí 250
    */
    function smtp_commands($fp, $commands) {
    foreach ($commands as $command) {
    fwrite($fp, "$command\r\n");
    $s = fgets($fp);
    if (substr($s, 0, 3) != '250') {
    return false;
    }
    while ($s[3] == '-') {
    $s = fgets($fp);
    }
    }
    return true;
    }

    /** Ověření funkčnosti e-mailu
    * @param string adresa příjemce
    * @param string adresa odesílatele
    * @return bool na adresu lze doručit zpráva, null pokud nejde ověřit
    * @copyright Jakub Vrána, http://php.vrana.cz/
    */
    function try_email($email, $from) {
    if (!function_exis­ts('getmxrr')) {
    return null;
    }
    $domain = preg_replace('~­.*@~', '', $email);
    getmxrr($domain, $mxs);
    if (!in_array($domain, $mxs)) {
    $mxs[] = $domain;
    }
    $commands = array(
    "HELO " . preg_replace('~­.*@~', '', $from),
    "MAIL FROM: <$from>",
    "RCPT TO: <$email>",
    );
    $return = null;
    foreach ($mxs as $mx) {
    $fp = @fsockopen($mx, 25);
    if ($fp) {
    $s = fgets($fp);
    while ($s[3] == '-') {
    $s = fgets($fp);
    }
    if (substr($s, 0, 3) == '220') {
    $return = smtp_commands($fp, $commands);
    }
    fwrite($fp, "QUIT\r\n");
    fgets($fp);
    fclose($fp);
    if (isset($return)) {
    return $return;
    }
    }
    }
    return false;
    }
    ?>

    skusal som if(try_email == true)... ale nejde ta