Toon posts:

[php] E-mail adres controloren op echtheid

Pagina: 1
Acties:
  • 190 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi,

Ik vraag me al een tijdje af of er een mogelijkheid is om te controleren of een ingevoerd e-mail adres werkelijk een bestaat & werkend is. Dus controleren of @ en een . is niet genoeg. Heeft iemand een idee? Functie, scriptje?

Mvg, Freez0r

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 17:26
Ja, stuur een mailtje en kijk of ze reageren :)

[edit]
ik heb wat jij wilt trouwens wel eens gezien, Mantis heeft het geloof ik.

Verwijderd

Zie www.phpfreakz.nl

En dan bij de script library ;)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

www.zend.com staat een vrij goede controle dacht ik :)

Doet iets met Cloud (MS/IBM)


Verwijderd

dit is van phpfreakz.com artikeltje:
PHP:
1
2
3
4
5
6
7
8
9
10
<?
if (eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $email))
{
 echo "email is oke";
}
else
{
 echo "email is niet oke";
}
?>

  • Johannes
  • Registratie: Juni 2000
  • Laatst online: 14-09 23:09
Op donderdag 27 december 2001 16:18 schreef Thunder het volgende:
http://www.phpbuilder.com/columns/dario19990616.php3?page=3
Vrij duidelijke uitleg :)
Controleren op @ en . was niet genoeg, postte de topicstarter net?

Je kunt ook nog checken of de hosts wel bestaan, met MX, A en CNAME records.
code:
1
2
3
4
list($user, host) = explode($email, '@');
if(checkdnsrr($host, 'MX') || checkdnsrr($host, 'A') || checkdnsrr($host, 'CNAME')){
    // Host bestaat
}

Maar ook dit biedt natuurlijk geen zekerheid, dus het makkelijkste is nog om ze een mailtje te sturen, en dan ze laten activeren door op een link in het malitje te klikken. Je kan ook een random gegenereerd password opsturen, zonder kunnen ze ook niet inloggen, dus dan moet het mailadres ook bestaan.

Uit volle borst op weg naar nergens / Zonder reden zonder doel
Met m'n zeden en m'n zonden / En mijn angstig voorgevoel
Laat mij mijn kont tegen de krib / Laat mij dit goddeloze lied
Hef jij je handen maar ten hemel / Maar red mij niet


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 14-09 17:42

Gerco

Professional Newbie

je kunt een socket openen naar de SMTP server van dat domain en proberen een mail te versturen. Als het adres niet bestaat krijg je een error 550 van de SMTP server (geloof ik).

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


Verwijderd

cool, dit is altijd handig voor mijn projectjes ;)

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 19-08 19:06
Als je echt zeker wilt zijn, kun je ook het ook zo doen.
Een oud scriptje van mezelf op phpfreakz.nl:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
$rx = eregi("[a-z0-9_-]+([\.]{1}[a-z0-9_-]+)*@[a-z0-9-]+([\.]{1}[a-z0-9-]+)+",$mail);
list($user,$host) = split("@",$mail);
$fp1 = @fsockopen ($host, "25", $errno, $errstr, 300);
$fp2 = @fsockopen ($host, "110", $errno, $errstr, 300);
$fp3 = @fsockopen ($host, "143", $errno, $errstr, 300);
if ($rx &amp;amp;&amp;amp; ($fp1 || $fp2 || $fp3)) {
  echo "emailadres goed";
} else {
  echo "emailadres fout";
}
?>

hij controleert dus de pop3, imap en smtp poort
houd er wel rekening mee dat het vrij lang kan duren om het te controleren, dus...

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

SMTP heeft ook een ingebouwde mogelijkheid, het VRFY commando
SMTP provides as additional features, commands to verify a user name
quote uit deze RFC paragraaf 3.3

Dus je zou een SMTP sessie naar de betreffende server op kunnen zetten en kijken of ie 't VRFY commando ondersteund.
Zo Ja -> een gecontroleerd (op bestaan) e-mail adres, zo Nee -> iets anders verzinnen :P

Niet alle SMTP servers ondersteunen dit commando, maar 't is in ieder geval iets :)

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Op donderdag 27 december 2001 16:46 schreef Limhes het volgende:
Als je echt zeker wilt zijn, kun je ook het ook zo doen.
Een oud scriptje van mezelf op phpfreakz.nl:
[knip php scriptje]
hij controleert dus de pop3, imap en smtp poort
houd er wel rekening mee dat het vrij lang kan duren om het te controleren, dus...
Is duurt de check ook onnodig lang omdat er genoeg sites zijn waar alleen een smtp server op draait en dit ook IMHO het enige is waar je op 'moet' controleren.

Na deze check weet je alleen dat er een SMTP server voor dat domein draait. Als ik echter een ongeldig deel voor de @ zet en een geldig domein erachter zou jouw check toch positief zijn :?

  • Shaper
  • Registratie: Januari 2000
  • Laatst online: 26-03 11:09

Shaper

 

Op http://phpclasses.upperdesign.com/ staan veel handige classes. Onder andere email validatie in verschillende vormen, waaronder SMTP checks. Succes.

  • Thunder
  • Registratie: Maart 2000
  • Niet online
Op donderdag 27 december 2001 16:28 schreef Taradino het volgende:

[..]

Controleren op @ en . was niet genoeg, postte de topicstarter net
00ps
* Thunder las te snel
Pagina: 1