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.
45 lines
1003 B
45 lines
1003 B
<?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 [];
|
|
}
|
|
}
|
|
|