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('[email protected]')) {
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 test
Or:
./vendor/bin/phpunit --testdox --verbose --colors tests
vendor/bin/phpunit --testdox --verbose --colors tests/RemoteFileUpdaterTest.php
php -f examples/mx.php
php -f examples/simple.php