diff --git a/src/wp-includes/comment.php b/src/wp-includes/comment.php
index 0fb9f01093..f098910ea5 100644
--- a/src/wp-includes/comment.php
+++ b/src/wp-includes/comment.php
@@ -3065,7 +3065,7 @@ function wp_handle_comment_submission( $comment_data ) {
$comment_type = '';
if ( get_option( 'require_name_email' ) && ! $user->exists() ) {
- if ( 6 > strlen( $comment_author_email ) || '' == $comment_author ) {
+ if ( '' == $comment_author_email || '' == $comment_author ) {
return new WP_Error( 'require_name_email', __( 'ERROR: please fill the required fields (name, email).' ), 200 );
} elseif ( ! is_email( $comment_author_email ) ) {
return new WP_Error( 'require_valid_email', __( 'ERROR: please enter a valid email address.' ), 200 );
diff --git a/src/wp-includes/formatting.php b/src/wp-includes/formatting.php
index a057cce063..6b96097e83 100644
--- a/src/wp-includes/formatting.php
+++ b/src/wp-includes/formatting.php
@@ -2872,7 +2872,7 @@ function is_email( $email, $deprecated = false ) {
_deprecated_argument( __FUNCTION__, '3.0.0' );
// Test for the minimum length the email can be
- if ( strlen( $email ) < 3 ) {
+ if ( strlen( $email ) < 6 ) {
/**
* Filters whether an email address is valid.
*
@@ -3109,7 +3109,7 @@ function iso8601_to_datetime( $date_string, $timezone = 'user' ) {
*/
function sanitize_email( $email ) {
// Test for the minimum length the email can be
- if ( strlen( $email ) < 3 ) {
+ if ( strlen( $email ) < 6 ) {
/**
* Filters a sanitized email address.
*
diff --git a/src/wp-includes/rest-api.php b/src/wp-includes/rest-api.php
index ec7c50d27b..57e4e9f6fd 100644
--- a/src/wp-includes/rest-api.php
+++ b/src/wp-includes/rest-api.php
@@ -1077,11 +1077,7 @@ function rest_validate_value_from_schema( $value, $args, $param = '' ) {
break;
case 'email' :
- // is_email() checks for 3 characters (a@b), but
- // wp_handle_comment_submission() requires 6 characters (a@b.co)
- //
- // https://core.trac.wordpress.org/ticket/38506
- if ( ! is_email( $value ) || strlen( $value ) < 6 ) {
+ if ( ! is_email( $value ) ) {
return new WP_Error( 'rest_invalid_email', __( 'Invalid email address.' ) );
}
break;
diff --git a/tests/phpunit/tests/formatting/IsEmail.php b/tests/phpunit/tests/formatting/IsEmail.php
index 0432fa62da..feff3ed916 100644
--- a/tests/phpunit/tests/formatting/IsEmail.php
+++ b/tests/phpunit/tests/formatting/IsEmail.php
@@ -9,7 +9,8 @@ class Tests_Formatting_IsEmail extends WP_UnitTestCase {
"bob@example.com",
"phil@example.info",
"ace@204.32.222.14",
- "kevin@many.subdomains.make.a.happy.man.edu"
+ "kevin@many.subdomains.make.a.happy.man.edu",
+ "a@b.co",
);
foreach ( $data as $datum ) {
$this->assertEquals( $datum, is_email( $datum ), $datum );
@@ -22,7 +23,8 @@ class Tests_Formatting_IsEmail extends WP_UnitTestCase {
'http://bob.example.com/',
"sif i'd give u it, spamer!1",
"com.exampleNOSPAMbob",
- "bob@your mom"
+ "bob@your mom",
+ "a@b.c",
);
foreach ($data as $datum) {
$this->assertFalse(is_email($datum), $datum);