PHP e-mail address validator using list of all known TLDs and simple domain MX record check. With ability to automatically update top-level domains list.
use Fedek6\TldMailValidator\TldMailValidator;
/** @var string $tldsFilePath */
$tldsFilePath = __DIR__ . '/../data/tlds-alpha-by-domain.txt';
/** @var array $addresses */
$addresses = require __DIR__ . '/addresses.php';
/** @var \Fedek6\TldMailValidator\TldMailValidator $validator */
$validator = new TldMailValidator($tldsFilePath);
if ($validator->validate('janbrzechwa@mail.ru')) {
echo 'This is email is OK. and has proper actual tld.';
} else {
echo 'Something\'s wrong with this address';
}If you want to test also MX record of a domain (slower), pass second argument to the constructor:
/** @var \Fedek6\TldMailValidator\TldMailValidator $validator */
$validator = new TldMailValidator($tldsFilePath, TldMailValidator::TEST_ALL);composer testOr:
./vendor/bin/phpunit --testdox --verbose --colors testsvendor/bin/phpunit --testdox --verbose --colors tests/RemoteFileUpdaterTest.phpphp -f examples/mx.php
php -f examples/simple.php