Проверить корректность email через php

Проверить корректность email через php

55345345

Раньше я создавал программы совершенно не обращая внимания на то, какой email вводит пользователь, например, в форму регистрации. И это был не правильный подход. Email обязательно нужно проверять на корректность. Разберемся с тем, как это делается через PHP.

Предположим у вас есть программа, которая отправляет уведомления на почту, авторизует пользователя, где логином является email и т.д. В этих и многих других ситуациях лучше всегда позаботиться о том, чтобы вводимый email в БД был всегда корректен. Так как он потом может использоваться для отправки почты через mail() функцию.

Итак, чтобы проверить email на корректность, в php можно пойти двумя способами - через специальную функцию и регулярные выражения. Рассмотрим только первый вариант, так как он намного проще.

<?php
$email = 'testanddemo@mail.ru';
if(filter_var($email, FILTER_VALIDATE_EMAIL)) {echo 'Email корректен';} else {echo 'Email не корректен';}
?>

Как видно из примера проверяется почтовый ящик, записанный в $email с помощью функции filter_var(). Если почта корректна, то выведется сообщение об этом. Данную функцию я часто использую перед отправкой mail() сообщений, чтобы не тратить ресурсы хостинга, если ящик написан не верно.

Разберем еще один пример. А что если нам необходимо запритетить регистрацию с определенных ящиков на сайте, например: @10mail.org или iaoss.com. В этом случае используйте этот код:

<?php
$piecesto = 'testanddemo@10mail.org';
if(filter_var($piecesto, FILTER_VALIDATE_EMAIL)) {
$piecesrez = 1;
$piecespochtabad = array('10mail.org', 'yomail.info', 'iaoss.com', 'dropmail.me', 'crazyumka.antelope.wh1.su', 'armyspy.com');
$piecespochta = explode("@", $piecesto);
for ($ig = 0; $ig <= count($piecespochtabad); $ig++) { if ($piecespochta[1] == $piecespochtabad[$ig]) {$piecesrez = 2; } } }
else {$piecesrez = 3;}
if($piecesrez == 1) {echo 'Email корректен';}
if($piecesrez == 2) {echo 'Email не поддерживается';}
if($piecesrez == 3) {echo 'Email не корректен';}
?>

При запуске этого примера выведет "Email не поддерживается", так как код блокирует временную почту с ящика 10mail.org. Данное условие прописано в массиве $piecespochtabad. В него вы можете прописывать те домены через запятую, с которых запрещена, например, регистрация.

| | Проверить корректность email через php | Раньше я создавал программы совершенно не обращая внимания на то, какой email вводит пользователь, например, в форму регистрации. И это был не правиль | http://blogprogram.ru/wp-content/uploads/2016/07/55345345-131x131.jpg