From ae31a4ab76fb8f89500fd509df8c951b4770e006 Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Tue, 16 Sep 2008 17:50:02 +0000
Subject: [PATCH] - Patch #308138 by mfer, Dave Reid: replace
 valid_email_address with filter_var and FILTER_VALIDATE_EMAIL.

---
 includes/common.inc          | 7 +------
 modules/contact/contact.test | 2 +-
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/includes/common.inc b/includes/common.inc
index 33109f00ec21..69227435e255 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -866,12 +866,7 @@ function t($string, $args = array(), $langcode = NULL) {
  *   TRUE if the address is in a valid format.
  */
 function valid_email_address($mail) {
-  $user = '[a-zA-Z0-9_\-\.\+\^!#\$%&*+\/\=\?\`\|\{\}~\']+';
-  $domain = '(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.?)+';
-  $ipv4 = '[0-9]{1,3}(\.[0-9]{1,3}){3}';
-  $ipv6 = '[0-9a-fA-F]{1,4}(\:[0-9a-fA-F]{1,4}){7}';
-
-  return (bool)preg_match("/^$user@($domain|(\[($ipv4|$ipv6)\]))$/", $mail);
+  return (bool)filter_var($mail, FILTER_VALIDATE_EMAIL);
 }
 
 /**
diff --git a/modules/contact/contact.test b/modules/contact/contact.test
index 1bea7e53cf83..b6328fc15317 100644
--- a/modules/contact/contact.test
+++ b/modules/contact/contact.test
@@ -45,7 +45,7 @@ class ContactSitewideTestCase extends DrupalWebTestCase {
 
     // Add categories.
     // Test invalid recipients.
-    $invalid_recipients = array('invalid', 'invalid@', /*'invalid@site', 'invalid@site.',*/ '@site.', '@site.com');
+    $invalid_recipients = array('invalid', 'invalid@', 'invalid@site', 'invalid@site.', '@site.', '@site.com');
     foreach ($invalid_recipients as $invalid_recipient) {
       $this->addCategory($this->randomName(16), $invalid_recipient, '', FALSE);
       $this->assertRaw(t('%recipient is an invalid e-mail address.', array('%recipient' => $invalid_recipient)), t('Caught invalid recipient (' . $invalid_recipient . ').'));
-- 
GitLab