Autor | Zpráva | ||
---|---|---|---|
Ondra H Profil * |
#1 · Zasláno: 11. 12. 2007, 16:07:13
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 |
#2 · Zasláno: 11. 12. 2007, 16:14:17 · Upravil/a: BetaCam
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 |
#3 · Zasláno: 11. 12. 2007, 16:19:45
Ondra H
Jen pro srozumnění: jak chceš kontrolovat, zda mail lze doručit? Posílat na mail snad ne. |
||
Ondra H Profil * |
#4 · Zasláno: 11. 12. 2007, 17:46:14
tu funkci mám z:
http://www.root.cz/clanky/php-kontrola-e-mail/ |
||
Ondra H Profil * |
#5 · Zasláno: 11. 12. 2007, 17:51:04
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 |
#6 · Zasláno: 11. 12. 2007, 18:02:15
Hmm, můžeš ještě zkusit použít funkci checkdnsrr.
|
||
Ondra H Profil * |
#7 · Zasláno: 11. 12. 2007, 18:08:54
to samé, nejspíše musím povolit nějaký modul v php.ini...
teď jedu pryč, za hodinku na to mrknu... |
||
Ondra H Profil * |
#8 · Zasláno: 11. 12. 2007, 19:07:20
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 ;-) |
||
Časová prodleva: 17 let
|
0