KS90 Posted September 26, 2010 Report Share Posted September 26, 2010 Sveiki, ir nepieciesamiba pec skripta, kurs parbauda e-pasta adreses esamibu. Ideja ir dot tam konkretu listu ar e-pasta adresem un lai skripts atgriez verifetas, derigas adreses. Zinu, ka ir pieejamas tadas programmas, tacu Lattelecom ir blokejis portu, kas varetu to izdarit. Varbut kadam ir bijusi pieredze saja joma. Paldies Quote Link to comment Share on other sites More sharing options...
briedis Posted September 26, 2010 Report Share Posted September 26, 2010 Man liekas, ka tas nav iespējams. E-pasta serverim nav pienākums paziņot, ka adresāts e-pastu ir saņēmis. Quote Link to comment Share on other sites More sharing options...
KS90 Posted September 26, 2010 Author Report Share Posted September 26, 2010 Man liekas, ka tas ir iespejams, tik nezinu, vai ir tads skripts pieejams. Ka jau mineju, ir programmas, kuras suta tadus ka pieprasijumus, kas ari parbauda esamibu (taja skaita ari sintaksi). Quote Link to comment Share on other sites More sharing options...
briedis Posted September 26, 2010 Report Share Posted September 26, 2010 Gūglē vismaz kaut ko esi meklējis? Pats info būtu atradis 10x ātrāk, nekā šeit sagaidījis. "php check email exists" izmet 29 miljonus rezultātu. Quote Link to comment Share on other sites More sharing options...
chizijs Posted September 26, 2010 Report Share Posted September 26, 2010 function valid_email($email) { if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email)) || (preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$email)) ) { $host = explode('@', $email); if(checkdnsrr($host[1].'.', 'MX') ) return true; if(checkdnsrr($host[1].'.', 'A') ) return true; if(checkdnsrr($host[1].'.', 'CNAME') ) return true; } return false; } if (!function_exists('checkdnsrr')) { function checkdnsrr($host, $type = '') { if(!empty($host)) { if($type == '') $type = "MX"; @exec("nslookup -type=$type $host", $output); while(list($k, $line) = each($output)) { if(eregi("^$host", $line)) { return true; } } return false; } } } Quote Link to comment Share on other sites More sharing options...
marrtins Posted September 26, 2010 Report Share Posted September 26, 2010 (edited) Tas jau tikai pārbauda vai e-pasts ir valīds un vai tam ekistē attiecīgie DNS ieraksti (pietam, šis skripts ir gļukains). To, vai pats e-pasta konts uz servera eksistē, nav iespējams noteikt 100%. Vienīgais veids, kā to noteikt, ir nosūtīt uz to e-pasta adresi apstiprinājuma kodu. Edited September 26, 2010 by marrtins Quote Link to comment Share on other sites More sharing options...
j2b Posted September 27, 2010 Report Share Posted September 27, 2010 Vari apskatīties vēl skriptus no Drupal moduļa (http://drupal.org/project/email_verify), bet tie vis ticamāk nav uzreiz izmantojami custom PHP aplikācijā. Tomēr gribētu brīdināt par sekojošo: Jau marrtins un briedis norādīja, ka rezultāti nebūs 100%. Ir tā, ka pēc sintakses SMTP serverim ir jāatbild uz telnet pieprasījumu, kas pateiktu vai tāda adrese ir/vai būs relejota, vai nē. Tomēr problēmas rada citi apstākļi. Korekti un pilnīgi konfigurētas meila sistēmas iekļauj ne tikai korektu mail hederu un HELO funkciju pārbaudi, bet vēl talkā nā DNS Lookup, Reverse DNS Lookup, DNSRBLi un tādas liets. Līdz ar to, lai tiktu līdz maila pārbaudei no sākuma ir jāpanāk, ka tavs web serveris, kurā griežas aplikācija faktiski ir nokonfigurēts kā pilnvērtīgs SMTP serveris ar visām no tā izrietošām sekām. Tā pat būtiski ir apstrādāt Gray listing sistēmas un arī nodrošināt, lai šis web serveris (tā IP adrese) nav spam listingos. Vis ticamāk uz Shared hosting to izdarīt nevarēs. Būs jāņem VPS/Collocation vai jāīrē fizisks serveris vai vismaz IP adrese savām vajadzībā. Visi šie papildus pārbaudes mehānismi un DNS pārbaudes ir tās, ka padara elementāro funkciju mail to: neiespējamu skriptiem, ja šis web serveris nav tā nokonfigurēts. Tieši šī iemesla dēļ šādām meilu pārbaudēm ticēt nevar. Vienīgais variants būtu izmantot meilinglistes softu, kurš vairāk vai mazāk secina, ka atkārtoti meils uz konkrētu pastu nav aizgājis, bet tur, savukārt, var apstrādāt SMTP atbildes - nav tāda konta, pārpildīta kvota, utt. Bet tas ir pēc tam, nevis tagad uzreiz. Ja vēlies veikt pārbaudes e-pasta esamībai reģistrācijas procesā, tad rēķinies ar to, ka daudzas reģistrācijas būs neveiksmīgas un zaudēsi apmeklētāju. Esmu to mēģinājis kaut vai ar apollo.lv pastiem - nekā. Protams, serveris bija dev stadijā, un nekādas SMTP fīčas tam nebija konfigurētas. Tāpēc izvēlies tad citus mehānismus, kā nočekot, vai pasts ir pareizs. Quote Link to comment Share on other sites More sharing options...
Vhubuo Posted September 27, 2010 Report Share Posted September 27, 2010 Vari apskatīties vēl skriptus no Drupal moduļa (http://drupal.org/project/email_verify), bet tie vis ticamāk nav uzreiz izmantojami custom PHP aplikācijā. Tomēr gribētu brīdināt par sekojošo: Jau marrtins un briedis norādīja, ka rezultāti nebūs 100%. Ir tā, ka pēc sintakses SMTP serverim ir jāatbild uz telnet pieprasījumu, kas pateiktu vai tāda adrese ir/vai būs relejota, vai nē. Tomēr problēmas rada citi apstākļi. Korekti un pilnīgi konfigurētas meila sistēmas iekļauj ne tikai korektu mail hederu un HELO funkciju pārbaudi, bet vēl talkā nā DNS Lookup, Reverse DNS Lookup, DNSRBLi un tādas liets. Līdz ar to, lai tiktu līdz maila pārbaudei no sākuma ir jāpanāk, ka tavs web serveris, kurā griežas aplikācija faktiski ir nokonfigurēts kā pilnvērtīgs SMTP serveris ar visām no tā izrietošām sekām. Tā pat būtiski ir apstrādāt Gray listing sistēmas un arī nodrošināt, lai šis web serveris (tā IP adrese) nav spam listingos. Vis ticamāk uz Shared hosting to izdarīt nevarēs. Būs jāņem VPS/Collocation vai jāīrē fizisks serveris vai vismaz IP adrese savām vajadzībā. Visi šie papildus pārbaudes mehānismi un DNS pārbaudes ir tās, ka padara elementāro funkciju mail to: neiespējamu skriptiem, ja šis web serveris nav tā nokonfigurēts. Tieši šī iemesla dēļ šādām meilu pārbaudēm ticēt nevar. Vienīgais variants būtu izmantot meilinglistes softu, kurš vairāk vai mazāk secina, ka atkārtoti meils uz konkrētu pastu nav aizgājis, bet tur, savukārt, var apstrādāt SMTP atbildes - nav tāda konta, pārpildīta kvota, utt. Bet tas ir pēc tam, nevis tagad uzreiz. Ja vēlies veikt pārbaudes e-pasta esamībai reģistrācijas procesā, tad rēķinies ar to, ka daudzas reģistrācijas būs neveiksmīgas un zaudēsi apmeklētāju. Esmu to mēģinājis kaut vai ar apollo.lv pastiem - nekā. Protams, serveris bija dev stadijā, un nekādas SMTP fīčas tam nebija konfigurētas. Tāpēc izvēlies tad citus mehānismus, kā nočekot, vai pasts ir pareizs. Pilnigi piekritu. Vienigais veids ka uz 100% parbaudit epastu ir smtp login/logout. Tas ir lietotajam ie jasaņiem aktivizacijas mails ar linku. Tada situacija ir radusis "ciņas ar spamu" deļ. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.