Make WordPress Core

Opened 16 months ago

Last modified 3 months ago

#55821 new defect (bug)

`is_email()` does not follow PHP FILTER_VALIDATE_EMAIL rules, when an email has double period (..)

Reported by: khokansardar's profile khokansardar Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version: 5.9.3
Component: Formatting Keywords: has-testing-info has-patch has-unit-tests
Focuses: Cc:


If there has a typo in an email address like there has double period .. in an email address ( abc..def@… ). is_email() function return valid email when we have use like -

is_email( '' )

Where it should not return as valid email address. Which is working with PHP FILTER_VALIDATE_EMAIL checking. When we are checking the same kind of email with below code it return boolean false.

filter_var( '', FILTER_VALIDATE_EMAIL )

Expected behaviour should be like this. When use is_email() function it should respect like what PHP does.

Change History (6)

#1 @khokansardar
16 months ago

  • Severity changed from normal to major

#2 @desrosj
16 months ago

  • Severity changed from major to normal

#3 @Boniu91
16 months ago

Testing Instructions

These steps define how to reproduce the issue, and indicate the expected behavior.

Steps to Reproduce

  1. Add the following code to the footer.php, before closing </html>
  2. Visit the page and check the footer
  3. 🐞 Bug occurs, email address is valid is displayed

Expected Results

When testing a patch to validate it works as expected:

  • 3rd point should display email address is not valid.


We could change the to other not valid emails and see the results.

#4 @Boniu91
16 months ago

  • Keywords has-testing-info added

#5 @khokansardar
6 months ago

  • Keywords needs-patch added

This ticket was mentioned in PR #4631 on WordPress/wordpress-develop by @lopo.

3 months ago

  • Keywords has-patch has-unit-tests added; needs-patch removed

Added a check for double periods on the local part of the email address (taking inspiration from the same check on the domain part) + added unit test cases for both the local and the domain part (which was missing).

Trac ticket:

Note: See TracTickets for help on using tickets.