zend-blog-3-backend
40 строк · 796.0 Байт
1<?php
2
3namespace App\Utils;
4
5/**
6* Only check MX records
7*/
8class VerifyEmail
9{
10private static $domains = [];
11
12public static function isValid(string $email): bool
13{
14$domain = self::getDomain($email);
15if (isset(self::$domains[$domain])) {
16return self::$domains[$domain];
17}
18
19$mxHosts = [];
20getmxrr($domain, $mxHosts);
21
22$isValid = !empty($mxHosts);
23self::$domains[$domain] = $isValid;
24
25return $isValid;
26}
27
28public static function normalize(string $email): string
29{
30return strtolower(trim($email));
31}
32
33private static function getDomain(string $email)
34{
35$email_arr = explode('@', $email);
36$domain = array_slice($email_arr, -1);
37
38return $domain[0];
39}
40}
41