Use egulias/EmailValidator to validate email addresses

This commit is contained in:
Kijin Sung 2018-10-18 14:16:12 +09:00
parent ad96ae6bb6
commit dead538afb
2 changed files with 11 additions and 1 deletions

View file

@ -217,7 +217,9 @@ class Mail extends Rhymix\Framework\Mail
*/
public static function isVaildMailAddress($email_address)
{
if(preg_match("/([a-z0-9\_\-\.]+)@([a-z0-9\_\-\.]+)/i", $email_address))
$validator = new \Egulias\EmailValidator\EmailValidator;
$rfc = new \Egulias\EmailValidator\Validation\RFCValidation;
if($validator->isValid($email_address, $rfc))
{
return $email_address;
}

View file

@ -173,4 +173,12 @@ class MailTest extends \Codeception\TestCase\Test
$this->assertEquals('embed', $attachments[1]->type);
$this->assertEquals('cid:thisismyrandomcid@rhymix.org', $attachments[1]->cid);
}
public function testEmailAddressValidator()
{
$this->assertEquals('devops@rhymix.org', Mail::isVaildMailAddress('devops@rhymix.org'));
$this->assertEquals('some+thing@gmail.com', Mail::isVaildMailAddress('some+thing@gmail.com'));
$this->assertEquals('weird@localhost', Mail::isVaildMailAddress('weird@localhost'));
$this->assertEquals('', Mail::isVaildMailAddress('invalid@'));
}
}