Если вам нужно проверить, является ли письмо реальным, активным или безопасным для использования, встроенных в Laravel правил проверки может быть недостаточно.
Сегодня мы покажем вам, как сделать проверку электронной почты в Laravel шаг за шагом, начиная с использования метода проверки и заканчивая созданием пользовательских правил проверки. Но если вы ищете более простой способ — тот, который проверяет не только формат, — вы также найдете лучшую альтернативу, которая не позволит недействительным, поддельным или рискованным письмам попасть в ваш список.
Как сделать проверку электронной почты в Laravel?

Laravel предоставляет встроенные правила проверки электронной почты, а также возможность создания пользовательских правил проверки под конкретные нужды. Мы расскажем вам о настройке проверки электронной почты в Laravel, обработке ошибок проверки, а также о реализации проверки DNS и RFC.
#1 Проверка подлинности электронной почты в Laravel с помощью метода validate
Метод validate в Laravel, доступный в классе Illuminate\Http\Request, позволяет легко проверять входящие HTTP-запросы. Следующий пример демонстрирует основные правила проверки электронной почты внутри метода контроллера.

Что делают эти правила:
- required — Поле не может быть пустым.
- email:rfc,dns — Проверяет, соответствует ли письмо стандартам RFC, и проверяет домен по записям DNS.
Если валидация не проходит, Laravel автоматически перенаправляет пользователей и выводит сообщения об ошибках в сессию.
#2 Использование валидации запроса формы для более чистого кода
Класс запроса формы позволяет отделить логику проверки от контроллера. Выполните эту команду:

Затем обновите новый класс внутри app/Http/Requests/:

Теперь обновите свой контроллер, чтобы использовать его:

Такой подход делает ваш код более чистым и пригодным для повторного использования.
#3 Настройка сообщений об ошибках проверки
Laravel имеет стандартные сообщения об ошибках, но вы можете настроить их в файле resources/lang/en/validation.php:

Или внутри класса запроса формы:

#4 Создание пользовательских правил проверки электронной почты
Если вам нужно что-то более сложное, создайте пользовательское правило проверки:

Обновите файл app/Rules/ValidEmail.php:

Примените его внутри контроллера:

Это позволяет настраивать обработку ошибок и расширенную валидацию.
#5 Обработка ошибок валидации
Если валидация не проходит, Laravel автоматически возвращает ошибки. Чтобы показать сообщения в Blade:

Для запросов API Laravel отправляет ответ 422 с ошибками:

#6 Расширенная проверка электронной почты: DNS и MX-записи
Чтобы проверить домен электронной почты, используйте проверку DNS:

- rfc — Обеспечивает соответствие электронной почты стандарту RFC 5322.
- dns — Проверяет, есть ли в домене записи MX (т.е. может ли он получать электронную почту).
Для пользовательской проверки DNS создайте правило:

Обновите файл app/Rules/DnsValidator.php:

Примените его внутри контроллера:

#7 Проверка подлинности электронной почты в запросах JSON API
Для API-запросов возвращайте JSON-ответы вместо редиректов:

Laravel автоматически возвращается:

Чтобы выполнить проверку вручную:

Почему проверка электронной почты в Laravel не идеальна?
Проверка электронной почты в Laravel имеет свои ограничения. Она проверяет только правильность формата письма — она не проверяет, является ли письмо реальным, активным или безопасным для использования. Вот почему полагаться только на встроенные в Laravel правила проверки может быть не лучшим выбором.
Он проверяет только формат адреса
Метод validate, предоставляемый Laravel, гарантирует, что письмо выглядит корректно, но не подтверждает, что адрес существует. Правила проверки сосредоточены на структуре, а не на возможности доставки. Это означает, что недействительные письма, опечатки или даже поддельные адреса могут пройти проверку.
Он не распространяется на адреса, которые можно использовать для рассылки, или на ловушки для спама.
Метод проверки Laravel не позволяет обнаружить универсальные адреса электронной почты, которые принимают все входящие сообщения — как валидные, так и нет. Он также не может отфильтровать спам-ловушки, которые провайдеры электронной почты используют для отлова отправителей, использующих устаревшие или купленные списки адресов. Без этих проверок ваш список адресов электронной почты может пополниться рискованными адресами.
Для его реализации требуются знания в области кодирования
Настройка проверки электронной почты в Laravel требует работы с PHP-файлом, использования структуры пространства имен PHP и написания пользовательских правил проверки. Если вы не знакомы с синтаксисом Laravel, применение правил валидации может оказаться сложным. Пользовательские сообщения об ошибках также должны быть настроены вручную с помощью метода проверки.
Его невозможно автоматизировать
Laravel не предоставляет встроенной автоматизации для проверки электронной почты, помимо отправки форм. Вам придется интегрировать внешние API или писать собственные правила валидации для динамической проверки писем. Даже при наличии собственной системы сообщений об ошибках ручная обработка ошибок валидации может замедлить разработку.
Лучшая альтернатива проверке электронных писем с помощью Laravel
Хотя правила проверки электронной почты в Laravel помогают в базовой проверке формата, их недостаточно для поддержания чистоты и надежности списка адресов электронной почты. Чтобы проверить, действительно ли письмо действительно, используйте инструмент, который гарантирует, что ваши письма дойдут до реальных пользователей без риска отказов или спам-ловушек.
Bouncer — отличное решение.

Как Bouncer проверяет электронную почту:
Вы можете загрузить свой список адресов электронной почты и позволить Bouncer сделать все остальное:
- Проверка синтаксиса и формата — проверка правильности структуры письма (например, name@example.com).
- Проверка домена и MX-записей — проверка существования домена и наличия почтовых серверов, настроенных на получение электронной почты.
- Проверка SMTP — Bouncer подключается к почтовому серверу получателя (без отправки письма), чтобы проверить, существует ли почтовый ящик и можно ли получать сообщения.
- Обнаружение «ловушек» и спама — выявление рискованных доменов, которые принимают все письма (даже недействительные) или отлавливают отправителей спама.
- Проверка на токсичность — Отмечает потенциально опасные электронные письма, например одноразовые, временные или известные мошеннические адреса.
Bouncer: на что не распространяется валидация электронной почты в Laravel
Bouncer предлагает то, чего нет во встроенных правилах валидации Laravel — реальную проверку, которая выходит за рамки простого контроля формата.
Bouncer подтверждает, что письмо действительно
Приложения Laravel полагаются на проверку на основе синтаксиса. Метод validate, предоставляемый Laravel, проверяет только правильность структуры письма. Он не проверяет, существует ли почтовый ящик или можно ли до него добраться. С другой стороны, Bouncer проверяет действительность адресов электронной почты, соединяясь с почтовыми серверами, что гарантирует, что каждый адрес действительно активен.
Отлавливает недействительные, вредоносные и токсичные письма.
Обновления версии Laravel улучшили проверку электронной почты, но они все еще не выявляют ловушки для спама, мошеннические адреса или домены-ловушки. Функция Bouncer Shield от Bouncer мгновенно блокирует недействительные и вредоносные письма, защищая ваш список от рискованных контактов, которые могут навредить репутации вашего отправителя.
Автоматизированная проверка без кодирования
Написание пользовательского правила проверки в PHP-файле означает ручную настройку логики, обработку ошибок проверки и определение пользовательского сообщения об ошибке. Bouncer избавляет от этой дополнительной работы благодаря простой в использовании платформе и API, делая массовую проверку электронной почты простой — не требующей ручного кодирования.
Проверяет не только формат, но и эффективность доставки
Хотя правила валидации Laravel могут отмечать отсутствие символов «@», они не дают представления о доставляемости электронной почты. Bouncer предоставляет комплект Deliverability Kit, который тестирует размещение писем в почтовом ящике, проверяет аутентификацию электронной почты и отслеживает черные списки, чтобы убедиться, что ваши сообщения доходят до реальных пользователей.
Массовая проверка и проверка в режиме реального времени для повышения точности
Приложения Laravel обрабатывают по одному письму за раз, используя методы проверки в контроллерах. Однако Bouncer поддерживает массовую проверку, позволяя вам очищать тысячи адресов электронной почты одним запросом. API в режиме реального времени обеспечивает мгновенную проверку новых электронных адресов, предотвращая недействительные регистрации и снижая процент отказов.
👉 Узнайте , как проверить адреса электронной почты шаг за шагом, без кодирования.
Почему стоит выбрать Bouncer, а не валидацию Laravel?
- Метод проверки Laravel гарантирует, что письмо выглядит действительным. Bouncer проверяет, работает ли оно на самом деле.
- Для расширенных проверок в Laravel требуются пользовательские правила валидации. Bouncer делает это автоматически.
- Laravel не блокирует спам-ловушки, уловители и токсичные письма. Это делает Bouncer.
- Для реализации валидации в Laravel требуются знания кодирования. Bouncer не требует кодирования.
- Laravel не проверяет доставляемость. Bouncer улучшает размещение писем в почтовом ящике с помощью реальных данных.
Для компаний, которые полагаются на чистые и достоверные адреса электронной почты, лучшим выбором может стать Bouncer. Это гарантирует, что ваши письма попадут в нужные почтовые ящики — технически правильные и доставляемые.
Заключение
Прежде чем использовать проверку электронной почты в Laravel, вы должны знать следующее: она не подтверждает, что адрес электронной почты работает. Она не отлавливает поддельные письма, ловушки для спама или рискованные адреса, которые могут навредить вашей репутации отправителя. Кроме того, настройка пользовательских правил валидации требует знаний кодирования, и даже в этом случае Laravel не будет проверять действительность адресов электронной почты за пределами базового форматирования.
Bouncer может стать лучшей альтернативой. Он проверяет реальные электронные письма, блокирует ловушки спама и автоматизирует весь процесс — не требуется никакого кодирования. Независимо от того, нужна ли вам массовая проверка или проверка электронной почты в режиме реального времени, Bouncer гарантирует, что ваши письма попадут в реальные почтовые ящики, а не в тупик.
Не просто проверяйте, правильно ли выглядит письмо — убедитесь, что оно работает. Попробуйте Bouncer сегодня с помощью бесплатных кредитов.

