Make WordPress Core

Opened 5 years ago

Closed 4 years ago

#47467 closed defect (bug) (fixed)

is_email and PHPMailer validateAddress() method does not match

Reported by: ggpixel's profile ggPixel Owned by:
Milestone: 5.5 Priority: normal
Severity: normal Version:
Component: Mail Keywords:
Focuses: Cc:

Description

Sorry if this is not meant to be posted here.

Before sending an email using wp_mail(), I check email addresses with is_email() to make sure its valid. It kept on failing with PHPMailer returning an error "You must provide at least one recipient email address" even though is_email() returns a valid email address. After some investigation I realised that PHPMailer does its own validation on emails and it failed.

In my case the email that failed had a dot in front of the @ symbol (test.@…).

My questions is, shouldn't is_email() and PHPMailer's validateAddress() method work the same?

Change History (2)

#1 @david.binda
4 years ago

Hello there, and thank you for bringing this up!

The issue described in the ticket should have been fixed in r48645 , where the default validator for validateAddress is set to is_email.

Prior that changeset the validateAddress method was in deed using the PHPMailer's internal validation, which is not on par with the is_email function.

#2 @SergeyBiryukov
4 years ago

  • Milestone changed from Awaiting Review to 5.5
  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.