Autor Zpráva
Ondra H
Profil *
našel jsem si funkci pro kontrolu emailové adresy, konkrétně zda přijímá emaily..

kód:
function try_email($email, $from){
  if(!function_exists('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>",);
    foreach($mxs as $mx){
      $fp = @fsockopen($mx, 25);
      if($fp && substr($s = fgets($fp), 0, 3) == '220'){
        while($s{3} == '-'){
          $s = fgets($fp);
        }
      foreach($commands as $command){
        fwrite($fp, "$command\r\n");
        if(substr($s = fgets($fp), 0, 3) != '250'){
          return false;
        }
          while($s{3} == '-'){
            $s = fgets($fp);
          }
      }
        return true;
      }
    }
  return false;
}


a následně podmínku:
if(try_email($_POST['email_receiver'],$www_email)){
 echo "ok";
}else{
 echo "chybný email";
}


ale vypíše to hlášku "chybný email" i když je emailovka v pořádku
BetaCam
Profil
Typnul bych, že

!function_exists('getmxrr')


je FALSE

takže funkce vrátí NULL

a posléze neprojde podmínka

if(try_email($_POST['email_receiver'],$www_email))


takže ti to vypíše "chybný email"

ale je to bez záruky :)
Tomáš Hanus
Profil
Ondra H
Jen pro srozumnění: jak chceš kontrolovat, zda mail lze doručit? Posílat na mail snad ne.
Ondra H
Profil *
tu funkci mám z:
http://www.root.cz/clanky/php-kontrola-e-mail/
Ondra H
Profil *
BetaCam
jj chyba bude nejspíše tam, koukal jsem na php.net je to normální funkce, jenže kdyý odstraním tu podmínku:
if(!function_exists('getmxrr')){
return null;
}

tak to píše, že volám nenadefinovanou funkci...
djlj
Profil
Hmm, můžeš ještě zkusit použít funkci checkdnsrr.
Ondra H
Profil *
to samé, nejspíše musím povolit nějaký modul v php.ini...
teď jedu pryč, za hodinku na to mrknu...
Ondra H
Profil *
aha, tak jsem se dočetl, že to není implementované pro windows...

server bude stejně běžet na Unixu, ale vývoj a testování prozatím probíhá na woknech, jelikož unix server ještě není k dispozici...

no nic díky všem za ochotu ;-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0