WordPress.org

Make WordPress Core

Opened 10 years ago

Closed 7 years ago

Last modified 7 years ago

#11988 closed defect (bug) (invalid)

VERP does not work

Reported by: vladimir_kolesnikov Owned by: westi
Milestone: Priority: normal
Severity: normal Version: 3.0
Component: Mail Keywords: has-patch
Focuses: Cc:
PR Number:

Description

Suppose that we have a custom hook for "phpmailer_init" action which enables VERP support:

function phpmailer_init($phpmailer)
{
    $phpmailer->IsSMTP();
    if (!$phpmailer->smtp) {
        $phpmailer->smtp = new SMTP();
    }

    $phpmailer->smtp->do_verp = true;
}

But VERP support (in wp-includes/class-smtp.php) is a bit buggy: here's the transcript the session:

 Out: 220 example.com ESMTP Postfix
 In:  EHLO example.com
 Out: 250-example.com
 Out: 250-PIPELINING
 Out: 250-SIZE 10240000
 Out: 250-ETRN
 Out: 250-XVERP
 Out: 250-ENHANCEDSTATUSCODES
 Out: 250-8BITMIME
 Out: 250 DSN
 In:  MAIL FROM:<mailer@example.com>XVERP
 Out: 501 5.1.7 Bad sender address syntax
 In:  RSET
 Out: 250 2.0.0 Ok

You can see that the server (Postfix) supports VERP (250-XVERP) but the MAIL FROM line is malformed - it lacks space character between ">" and "XVERP":

220 example.com ESMTP Postfix (Ubuntu)
EHLO example.com
250-example.com
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-XVERP
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
MAIL FROM:<mailer@example.com> XVERP
250 2.1.0 Ok
RSET
250 2.0.0 Ok
QUIT
221 2.0.0 Bye

You can see that the space character solves the problem.

Attachments (1)

class-smtp.php.diff (463 bytes) - added by vladimir_kolesnikov 10 years ago.

Download all attachments as: .zip

Change History (12)

#1 @vladimir_kolesnikov
10 years ago

A typo: should be

function phpmailer_init(&$phpmailer)

instead of

function phpmailer_init($phpmailer)

in the example.

#2 @vladimir_kolesnikov
10 years ago

  • Cc vladimir@… added

#3 @nacin
10 years ago

This is an external, so this should be reported upstream. Is class-smtp current?

#4 @nacin
10 years ago

  • Milestone changed from Unassigned to Future Release

#5 @hakre
9 years ago

"Upstream" for PHPMailer for PHP 4 is WordPress :) If we do not fix this, there is no fix.

#7 @westi
8 years ago

  • Owner set to westi
  • Status changed from new to assigned

We need to open a new upstream ticket for this in http://code.google.com/a/apache-extras.org/p/phpmailer/issues/list

#8 @bpetty
7 years ago

  • Cc bryan@… added
  • Resolution set to invalid
  • Status changed from assigned to closed

Since no-one else bothered, I went ahead and submitted a ticket to fix VERP on the correct PHPMailer issue tracker where this should be.

http://code.google.com/a/apache-extras.org/p/phpmailer/issues/detail?id=92

This will be resolved on upstream update assuming it is something that should be fixed, and isn't actually a bug with Postfix - we leave that up to PHPMailer to determine.

#9 @bpetty
7 years ago

For what it's worth, this was now applied to PHPMailer after I created the ticket, so it will make it into WordPress on the next upstream update (see #21074 ).

#10 @SergeyBiryukov
7 years ago

  • Milestone Future Release deleted

#11 @bpetty
7 years ago

  • Cc bpetty added; bryan@… removed
Note: See TracTickets for help on using tickets.