Megbízható e-mail cím ellenőrzés

Megbízható e-mail cím ellenőrzés

Megbízható e-mail cím ellenőrzés

Ha a weboldalunkon keresztül szeretnénk e-mail címet bekérni a látogatótól, akár egy regisztrációhoz, akár egy hírlevél feliratkozáshoz, minden esetben meg kell győződnünk róla, hogy a begépelt e-mail cím valós-e. Egyfelől azért, hogy e-mailben tudjuk értesíteni a látogatót az aktuális eseményekről, illetve ki tudjuk szűrni vele az esetlegesen komolytalan, vagy kártékony érdeklődéseket.

Az interneten számos példa kering a helyes megoldásról, de a legtöbb csak az e-mail cím összetételét képes megvizsgálni. Tehát fogado-neve@domain.tld.

Nos amiért rossz ez a megoldás, hogy az imént leírt e-mail cím átmenne az ellenőrzésen, holott egészen biztosak lehetünk benne, hogy ez egy nem valós e-mail cím.

Megoldás

Spóroljunk meg egy apróbb kellemetlenséget magunknak és a kapott e-mail címet, még az ellenőrzés előtt szabadítsuk meg a felesleges szóközöktől, illetve alakítsuk át, hogy kizárólag kis betűkből álljon. Előfordulhat ugyanis, hogy vagy a cím előtt, vagy a címben, vagy akár a cím után szerepel egy szóköz, amit nehéz kiszúrni, ha kézi ellenőrzésre kerül a sor.

PHP


$email = str_replace(' ', '', strtolower($_POST['email']));

A PHP 5.2 verziójától kezdve már léteztek szűrésre alkalmazható függvények. A függvény paraméterezésével beállíthatjuk, hogy milyen feltétel alapján szeretnénk szűrni.

PHP


if (!filter_var($email, FILTER_VALIDATE_EMAIL))
	{
	echo '<p class="alert alert-danger">'.$email.' feltehetően nem valós, kérjük adja meg újra!</p>';
	}

Ezzel megkapjuk, hogy az e-mail cím nem csak formailag felel-e meg, hanem valóban csak és kizárólag olyan elemekből épül fel, ami csak valós e-mail cím esetén létezhet.

De nekünk ez még nem elég, hiszen történhet elgépelés az e-mail cím domain végződésében, ami elsőre formailag helyes lenne, de valójában nem létezik olyan domain. Például valaki elgépeli a _valami_@gmail.com címet _valami_@gmal.com-ra. A második cím esetén hiányzik egy "i" betű.

Ahhoz, hogy ezt is szűrni tudjuk, meg kell vizsgálnunk, hogy valóban létezik-e a domain.

PHP


$email_slug_array = explode('@', $email);
$domain = array_pop($email_slug_array);

if ((!checkdnsrr($domain, 'MX')) && (!checkdnsrr($domain, 'A')))
	{
	echo '<p class="alert alert-danger">'.$email.' feltehetően nem valós, kérjük adja meg újra!</p>';
	}

Ha a vizsgálat minden fázisán átesett az e-mail cím, akkor már csak el kell küldenünk az üzenetet, vagy egy egyszerű php mail függvénnyel, vagy egy phpMailer segítségével. Ez utóbbi számos beállítási lehetőséget egyszerűsít le számunkra az e-mail küldéséhez.

Demo letöltése

Leírásaink azon kezdő és haladó programozóknak nyújtanak segítséget, akik már minimális szinten foglalkoztak weboldalkészítéssel. Ha szeretnél jobban elmélyülni a témában, vagy elsajátítani alapokat, még tovább fejlődni, akkor nézz körbe tanfolyam kínálatunkban, ahol a kezdőtől a profi szintig nyújtunk képzéseket a számodra.

Oszd meg barátaiddal is!

Facebook Twitter Linkedin

Elérhetőségeink

  • Címünk: 1139 Budapest, Frangepán utca 3. (1. emelet)

  • Ügyfélfogadás, beiratkozás: Hétfőtől - péntekig: 09:00-17:00

  • Telefonszámunk: 06 70 604 2060, vagy 06 1 4500 110

  • E-mail címünk:

Közösségünk