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) 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; return $email_address;
} }

View file

@ -173,4 +173,12 @@ class MailTest extends \Codeception\TestCase\Test
$this->assertEquals('embed', $attachments[1]->type); $this->assertEquals('embed', $attachments[1]->type);
$this->assertEquals('cid:thisismyrandomcid@rhymix.org', $attachments[1]->cid); $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@'));
}
} }