Как проверить адрес электронной почты
Короткий ответ
filter_var() возвращает адрес, если он правильный, и false, если нет:
<?php
var_dump(filter_var('anna@example.com', FILTER_VALIDATE_EMAIL) !== false);
var_dump(filter_var('anna@example', FILTER_VALIDATE_EMAIL) !== false);Результат:
bool(true)
bool(false)Перед сохранением
Уберите пробелы по краям и приведите адрес к нижнему регистру, чтобы один и тот же адрес не сохранился дважды:
<?php
$email = strtolower(trim(' Anna@Example.COM '));
echo $email;Результат:
anna@example.comЧто проверка не гарантирует
Правильный формат не означает, что ящик существует. Убедиться в этом можно только одним способом — отправить письмо со ссылкой для подтверждения.
Функции из этого ответа
- filter_var — Проверяет или очищает значение по заданному правилу.
- trim — Удаляет пробелы и другие символы с начала и конца строки.
- strtolower — Переводит латинские буквы в нижний регистр.