[php] Email adres testen

Pagina: 1
Acties:

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 09-09 23:24

BierPul

2 koffie graag

Topicstarter
Ik heb een lijst email adressen gekregen waar we een nieuwsbrief naartoe gaan versturen

Ik heb nu een eerste check gedaan (regexen) en de foute geformateerde email adressen eruit gehaald.

Nu wil ik de overige mail adressen echt testen of ze wel bestaan.

Ik heb ook een probgramma gezien (worldcast) geloof ik die test direct bij de smtp server of het mail adres bestaat.

Nu wil ik een scrippie in elkaar frutten wat dit hetzelfde doet maar dan ook direct de de fouten uit mn db mikt

Dit laatste geen probleem maar heeft iemand een id hoe ik de signaaltjes bij de smtp server krijg en zo ja wat ik moet sturen om dit request te doen :)

Ja man


  • Grum
  • Registratie: Juni 2001
  • Niet online
Men doet dit:

1/ Zoek het mxrecord bij het domain op (alles na de @)
2/ Open een connectie naar port 25 op dat MX record
3/ Stuur:
code:
1
2
mail from: [vul wat in]
rcpt to: [hier het email adres]

Nu krijg je bij een OK meen ik een code '250 XXXXX... Recipient ok' terug en bij een fout bv code '500 No such account.'.

Verwijderd

Er staat hier wel iets over. Suc6!

  • Arnim
  • Registratie: Juni 2001
  • Laatst online: 04-09 15:49
Ik heb zelf is ooit zo iets gebruikt (connectie proberen te openen naar de SMTP server) en liep tegen problemen bij een aantal providers waaronder hetnet.nl. Ik kreeg timeouts en een wit scherm...

Team ColdFusion


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 09-09 23:24

BierPul

2 koffie graag

Topicstarter
Voor de info dit is hem geworden :)

Deze doet 1000 mail adressen in +- 10 seconden :)

De code wordt nog geoptimaliseerd (hij checked nu meerdere malen dezelfde host ed dat ga ik nog afvangen :)

Voor de nOObs heb ik er ook maar ff commentaar bijgezet :P
PHP:
1
<?/*Geen time-out op dit script*/        set_time_limit(0);/*De gegevens voor de dbase connectie*/        $hostname = "*************";    $username = "*************";    $password = "*************";    $dbName = "**************";/*De connectie*/        MySQL_CONNECT($hostname,$username,$password);/*Selecteer de dbase*/        MySQL_SELECT_DB($dbName);/*Haal de mail adressen op*/        $query = mysql_query("SELECT mail_id, email FROM contacten LIMIT 1000");/*Oke sjaak en nu ga je het zwaar krijgen :D*/echo("<html><head><link rel='STYLESHEET' type='text/css' href='mailing.css'></head><body><table bgcolor='#cccccc'><tr><td><table cellpadding='3' cellspacing='1'>");        WHILE($array = mysql_fetch_array($query)) {/*Eerst checken of het email adres wel ok geformuleerd is*/        if(preg_match("/^[A-Za-z0-9_-]+([.][A-Za-z0-9_-]+){0,4}[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+){1,3}$/", $array['email']) ) {          /*Het mail adres is ok dus we gaan door */        $host = substr(strstr($array['email'], '@'), 1).".";        /*Check het MX record*/                if ( getmxrr($host, $email_mx) ) {            $mx_ok = "<font color='#00FF06'>yes</font>";        } else {            $mx_ok = "<font color='#FF0000'>no</font>";        }                if(checkdnsrr($host,"ANY")) {            $dns_ok = "<font color='#00FF06'>yes</font>";        } else {            $dns_ok = "<font color='#FF0000'>no</font>";        }echo("<tr><td class='maintext'>Hostnaam :$host</td><td class='maintext'>MX_ok : $mx_ok</td><td class='maintext'>DNS_ok : $dns_ok</td><td class='maintext'>MX: {$email_mx['0']}</td></tr>");        }         }echo("</table></td></tr></table></body></html>");?>

Ja man


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 02:18

Gerco

Professional Newbie

Ligt het nu aan mij, of check je alleen of het domain ook echt bestaat? Ik zie nergens een check of het ADRES ook bestaat, alleen of het een MX record heeft.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 09-09 23:24

BierPul

2 koffie graag

Topicstarter
Hey adres daadwerkelijk checken gaat waarschijnlijk niet lukken.

Veel mail servers geven die info niet weer :(
code:
1
2
3
4
5
6
7
8
9
10
11
Hostnaam :wxs.nl. MX_ok : yes DNS_ok : yes MX: mail.wxs.nl 
Hostnaam :home.nl. MX_ok : yes DNS_ok : yes MX: mx2.home.nl 
Hostnaam :dekikker.nl. MX_ok : yes DNS_ok : yes MX: mailhost.castel.nl 
Hostnaam :wxs.nl. MX_ok : yes DNS_ok : yes MX: mail.wxs.nl 
Hostnaam :zonnet.nl. MX_ok : yes DNS_ok : yes MX: mail.zonnet.nl 
Hostnaam :hetnet.nl. MX_ok : yes DNS_ok : yes MX: mailhost.hetnet.nl 
Hostnaam :cici.nl. MX_ok : no DNS_ok : no MX:  
Hostnaam :hetnet.nl. MX_ok : yes DNS_ok : yes MX: mailhost.hetnet.nl 
Hostnaam :xs4all.nl. MX_ok : yes DNS_ok : yes MX: mx3.xs4all.nl 
Hostnaam :12move.nl. MX_ok : yes DNS_ok : yes MX: relay-1.worldonline.nl 
Hostnaam :zonnet.nl. MX_ok : yes DNS_ok : yes MX: mail.zonnet.nl

Dit is de output die het genereerd :)

Via Grum zn post denk ik dat je wel meer info kan krijgen maar dat lijkt me een klein beetje overkill

Maar het is leuk ter uitwerking :)

Ja man

Pagina: 1