sonarrradarrplexorganizrnginxdashboardlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximux
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1003 B
46 lines
1003 B
7 years ago
|
<?php
|
||
|
|
||
|
namespace Egulias\EmailValidator\Validation;
|
||
|
|
||
|
use Egulias\EmailValidator\EmailLexer;
|
||
|
use Egulias\EmailValidator\Exception\InvalidEmail;
|
||
|
use Egulias\EmailValidator\Validation\Error\SpoofEmail;
|
||
|
use \Spoofchecker;
|
||
|
|
||
|
class SpoofCheckValidation implements EmailValidation
|
||
|
{
|
||
|
/**
|
||
|
* @var InvalidEmail
|
||
|
*/
|
||
|
private $error;
|
||
|
|
||
|
public function __construct()
|
||
|
{
|
||
|
if (!class_exists(Spoofchecker::class)) {
|
||
|
throw new \LogicException(sprintf('The %s class requires the Intl extension.', __CLASS__));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public function isValid($email, EmailLexer $emailLexer)
|
||
|
{
|
||
|
$checker = new Spoofchecker();
|
||
|
$checker->setChecks(Spoofchecker::SINGLE_SCRIPT);
|
||
|
|
||
|
if ($checker->isSuspicious($email)) {
|
||
|
$this->error = new SpoofEmail();
|
||
|
}
|
||
|
|
||
|
return $this->error === null;
|
||
|
}
|
||
|
|
||
|
public function getError()
|
||
|
{
|
||
|
return $this->error;
|
||
|
}
|
||
|
|
||
|
public function getWarnings()
|
||
|
{
|
||
|
return [];
|
||
|
}
|
||
|
}
|