From dead538afb1dcde7c8bb096d3763c2fe2cb3a817 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Thu, 18 Oct 2018 14:16:12 +0900 Subject: [PATCH] Use egulias/EmailValidator to validate email addresses --- classes/mail/Mail.class.php | 4 +++- tests/unit/framework/MailTest.php | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/classes/mail/Mail.class.php b/classes/mail/Mail.class.php index 347434786..b7058ec23 100644 --- a/classes/mail/Mail.class.php +++ b/classes/mail/Mail.class.php @@ -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; } diff --git a/tests/unit/framework/MailTest.php b/tests/unit/framework/MailTest.php index 90ac557fa..801b384af 100644 --- a/tests/unit/framework/MailTest.php +++ b/tests/unit/framework/MailTest.php @@ -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@')); + } }