Jump to content
php.lv forumi

Skripts, kurs parbauda e-pasta adreses esamibu


KS90

Recommended Posts

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

Link to comment
Share on other sites

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;
     }
    }
   }

Link to comment
Share on other sites

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 by marrtins
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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ļ.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...