Проверка MX записи для домена почты при регистрации

+9
277

MX-запись в DNS (Mail eXchange) — основная DNS-запись для электронной почты, указывающая, какими серверами она обрабатывается. Эту запись для конкретно указанного e-mail при регистрации можно проверить средствами PHP. Логика здесь простая. Если нет почтового сервера, который и должен работать с почтой, то нет и почтового ящика (e-mail), отказ в регистрации в этом случае — правильное решение. 
Проверка будет работать в случаях: 
— для человека, если он ошибся при записи e-mail,
 Изображение
— для бота, если бот использует сгенерированные имена доменов либо те домены, у которых нет почтовых серверов.


Реализована эта идея хуком на событие «registration_validation», файлы системы не тронуты.
Установка: расположите этот файл по адресу /system/controllers/auth/hooks/registration_validation.php, обновите события в админке в Компоненты / Управление событиями.

Отключить хук можно там же, пререщелкнув Активность для события.

Изображение

Пользуйтесь, кому это нужно.

0
Panda58dev Panda58dev 21 день назад #

Клёвая идея!

Думаю имеет смысл ещё сделать проверку подключения к интернету. Если подключение отсутствует, скорее всего сайт собирается на локалхосте и боты вряд ли смогут достучаться 😁

Как я это вижу (ссылка). По сути, пингую сервера отечественных и не очень бигтехов.

0
IamB IamB 21 день назад #

Благодарю за интерес! Но не понял: 1. Если сервер отключен от интернета, кто же на сайте сможет зарегистрироваться? 2. Если localhost отключен от интернета, то вы хотите разработчику запретить регистрироваться? Смысл ваших 4-х сетевых запросов какой?

0
Panda58dev Panda58dev 21 день назад #

1 — Вероятно, нужно для тестирования чего-либо, связанного с регистрацией;

2 — Нет, если сайт не подключен к глобальной сети, то проверка MX записи домена указанной почты не делается. Своеобразный «байпас». Можно конечно руками включать/отключать хук, но… Автоматизация?

Запросы нужны для проверки подключения к интернету, достаточно ответа от хотя бы одного из указанных доменов.

0
IamB IamB 21 день назад #

Тогда так, не вижу смысла проверки подключения к интернету. в данном случае. И да, если нужна проверка на localhost, то проверить $_SERVER['REMOTE_ADDR'] гораздо быстрее.

0
Panda58dev Panda58dev 21 день назад #

Дело ваше :)

Еще от автора

PHP-минимум  для изменения шаблонов
На форуме много тем касающихся изменения шаблонов. Помогите вывести то, помогите скрыть сё, я не силен в PHP и т.д.
Автоматизация удаления контроллера
Нередко ошибки, из-за которых сайт падает, связаны с некорректным удалением компонентов.
Google Таблицы
Поле призвано упростить работу с таблицами. Можно создавать таблицы во встроенном визуальном редакторе, но это занятие как минимум трудоемкое.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.