Cовременный способ валидации введённой пользователем почты
Если вы искали способ бороться с тем, что пользователи вашего продукта используют фейковые почты для регистрации и получения бонусов или просто хотели найти современный способ валидировать введённую пользователем почту, то это статья для вас.
В ней я расскажу вам о том, как можно вывести валидацию email-адресов на совершенно новый уровень. В конце статьи вас будут ждать ссылки на полезные библиотеки. Погнали!
Принцип работы
Давайте начнём с того, как это работает. Две современные библиотеки для валидации email-адресов, о которых сегодня пойдёт речь, используют несколько методов:
- Проверка на регулярные выражения (Хотя сейчас этим никого не удивить)
- Проверка MX-записей домена
- Проверка SMTP сервера.
Мы остановимся на последних двух.
Что такое MX записи?
MX (Mail Exchange) записи являются частью DNS (Domain Name System) и указывают на почтовые серверы, отвечающие за приём электронной почты для домена. Проверка наличия MX записей позволяет убедиться, что домен действительно может принимать электронные письма.
Как это работает:
- DNS-запрос отправляется к серверу доменных имён для получения MX записей.
- Если MX записи найдены, это означает, что домен настроен для приёма почты.
К сожалению, проверка MX записей не всегда говорит о том, что почтовые ящики существуют, однако она всё-таки может отсеять некоторое количество невалидных почт.
Что такое SMTP сервер?
SMTP (Simple Mail Transfer Protocol) — протокол передачи почты. Он используется для отправки сообщения на заданный адрес и, если сообщение доставить не удаётся, то SMTP-сервер сообщает об этом.
Как это работает:
- Устанавливается соединение с SMTP сервером домена.
- Отправляется команда для проверки существования указанного почтового ящика.
- Сервер возвращает ответ, указывающий, существует ли почтовый ящик.
Проверка через SMTP даёт надёжную валидацию email-адресов за счёт прямого взаимодействия с почтовыми серверами, которые подтверждают существование конкретного почтового ящика. Это самый эффективный способ убедиться в корректности email-адреса по сравнению с другими методами.
Практика
Я могу выделить две библиотеки, которые будут лучше всего подходить для нашей с вами задачи по валидации email-адресов.
deep-email-validator
Преимущества:
- Библиотека достаточно популярна и широко используется.
- Поддержка TypeScript
Недостатки:
- Библиотека не обновлялась 3 года и скорее всего перестала поддерживаться
Как использовать:
@devmehq/email-validator-js
Преимущества:
- Библиотека регулярно обновляется.
- Поддержка TypeScript.
- Возможность гибко настроить валидацию.
Недостатки:
- Библиотека пока не такая популярная (около 2.5к скачиваний на данный момент в неделю)
Как использовать:
Заключение
Валидация email-адресов — это, конечно же, прежде всего, залог успешного проекта. Понимая всю серьёзность и важность защиты от фиктивных адресов электронной почты, вы сделаете правильный выбор в пользу современных методов защиты.
1 из своих почт светить на всяких говносайтах? просят-набираем случайные буквы и после @ самый короткий домен. Ни кто не сольет, нет спама. Профит