MX-запись в DNS (Mail eXchange) — основная DNS-запись для электронной почты, указывающая, какими серверами она обрабатывается. Эту запись для конкретно указанного e-mail при регистрации можно проверить средствами PHP. Логика здесь простая. Если нет почтового сервера, который и должен работать с почтой, то нет и почтового ящика (e-mail), отказ в регистрации в этом случае — правильное решение.
Проверка будет работать в случаях:
— для человека, если он ошибся при записи e-mail,
— для бота, если бот использует сгенерированные имена доменов либо те домены, у которых нет почтовых серверов.
Реализована эта идея хуком на событие «registration_validation», файлы системы не тронуты.
Установка: расположите этот файл по адресу /system/controllers/auth/hooks/registration_validation.php, обновите события в админке в Компоненты / Управление событиями.
Отключить хук можно там же, пререщелкнув Активность для события.
Пользуйтесь, кому это нужно.
Клёвая идея!
Думаю имеет смысл ещё сделать проверку подключения к интернету. Если подключение отсутствует, скорее всего сайт собирается на локалхосте и боты вряд ли смогут достучаться 😁
Как я это вижу (ссылка). По сути, пингую сервера отечественных и не очень бигтехов.
Благодарю за интерес! Но не понял: 1. Если сервер отключен от интернета, кто же на сайте сможет зарегистрироваться? 2. Если localhost отключен от интернета, то вы хотите разработчику запретить регистрироваться? Смысл ваших 4-х сетевых запросов какой?
1 — Вероятно, нужно для тестирования чего-либо, связанного с регистрацией;
2 — Нет, если сайт не подключен к глобальной сети, то проверка MX записи домена указанной почты не делается. Своеобразный «байпас». Можно конечно руками включать/отключать хук, но… Автоматизация?
Запросы нужны для проверки подключения к интернету, достаточно ответа от хотя бы одного из указанных доменов.
Тогда так, не вижу смысла проверки подключения к интернету. в данном случае. И да, если нужна проверка на localhost, то проверить $_SERVER['REMOTE_ADDR'] гораздо быстрее.
Дело ваше :)