diff options
-rw-r--r-- | _test/cases/inc/mail_isvalid.test.php | 2 | ||||
-rw-r--r-- | inc/mail.php | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/_test/cases/inc/mail_isvalid.test.php b/_test/cases/inc/mail_isvalid.test.php index 9cb5d0b97..7b152ff68 100644 --- a/_test/cases/inc/mail_isvalid.test.php +++ b/_test/cases/inc/mail_isvalid.test.php @@ -20,6 +20,8 @@ class mail_isvalid extends UnitTestCase { $tests[] = array('bugs@php.net.',false); $tests[] = array('bu(g)s@php.net1',false); $tests[] = array('bu[g]s@php.net1',false); + $tests[] = array('somebody@somewhere.museum',true); + $tests[] = array('somebody@somewhere.travel',true); foreach($tests as $test){ $this->assertEqual($test[0].'('.mail_isvalid($test[0]).')',$test[0].'('.(int)$test[1].')'); diff --git a/inc/mail.php b/inc/mail.php index bd05f31eb..a75aeefc4 100644 --- a/inc/mail.php +++ b/inc/mail.php @@ -159,11 +159,11 @@ function mail_encode_address($string,$header='',$names=true){ // NOTE: there is an unquoted '/' in RFC2822_ATEXT, it must remain unquoted to be used in the parser // the pattern uses non-capturing groups as captured groups aren't allowed in the parser // select pattern delimiters with care! -if (!defined('RFC2822_ATEXT')) define('RFC2822_ATEXT',"0-9A-Za-z!#$%&'*+/=?^_`{|}~-"); -if (!defined('PREG_PATTERN_VALID_EMAIL')) define('PREG_PATTERN_VALID_EMAIL', '['.RFC2822_ATEXT.']+(?:\.['.RFC2822_ATEXT.']+)*@(?:[0-9A-Za-z][0-9A-Za-z-]*\.)+[A-Za-z]{2,4}'); +if (!defined('RFC2822_ATEXT')) define('RFC2822_ATEXT',"0-9a-z!#$%&'*+/=?^_`{|}~-"); +if (!defined('PREG_PATTERN_VALID_EMAIL')) define('PREG_PATTERN_VALID_EMAIL', '['.RFC2822_ATEXT.']+(?:\.['.RFC2822_ATEXT.']+)*@(?:[0-9a-z][0-9a-z-]*\.)+(?:[a-z]{2,4}|museum|travel)'); function mail_isvalid($email){ - return preg_match('<^'.PREG_PATTERN_VALID_EMAIL.'$>', $email); + return preg_match('<^'.PREG_PATTERN_VALID_EMAIL.'$>i', $email); } /** |