Убедитесь, что электронная почта от действительного домена в PHP


Работая с приложением, которое получило регистрацию пользователей и предположим, что оно построено поверх PHP, вы хотите проверить, является ли электронная почта, введенная пользователем, действительной. Конечно, вы проверите, что введенная электронная почта является «синтаксически» действительной, используя один из эти методы.

Но что, если, скажем, вы также хотите проверить, что электронное письмо приходит с действительного домена. то есть это не что-то несуществующее, такое как «Test@iamjusttestingforthesackoftesting.com» где iamjusttestingforthesackoftesting.com не существует вообще в интернете.

В PHP есть небольшая удобная функция, которая позволяет вам делать это.

checkdnsrr функция

Что бы вы сделали, это проанализировать домен электронной почты, используя checkdnsrr вот так.

if (checkdnsrr(array_pop(explode("@", "foo@bar.com")), "MX")) {
     // valid email    
}

Что здесь происходит, checkdnsrr проверяет записи DNS данного типа (в данном случае «MX»), соответствующие данному адресу электронной почты. Здесь «MX» запись почтового обменника (MX запись) указывает почтовый сервер, отвечающий за прием сообщений электронной почты от имени доменного имени. Если «bar.com» существует в приведенном выше примере, функция вернется true,

Однако вам необходимо проверить, является ли электронная почта действительным «синтаксически», прежде чем применять вышеуказанную проверку существования домена, потому что checkdnsrr будет ожидать полное имя для поиска записей MX.