Test emails work, but confirmation emails fail

Hi there,

So it seems I have a problem that a few people have encountered in the past, but I can’t seem to find an actual solution to it.

Short version: I have a new phpList install. TEST is set to 0, authentication is via SMTP. I can successfully send test emails with this configuration using both SSL and TLS. However, when I try to test adding a subscriber through the subscribe page, it doesn’t send an email. I get the following error:

Sorry, sending the message to request your confirmation failed, please click “Reload” to try again. If it still does not work, please contact the administrator.

When I check the system logs in the phpList interface, this is the most detail I get in the log (note, I changed the recipient email in the quote, but is a valid address):

Error sending email to test@email.com SMTP Error: data not accepted.SMTP server error: DATA END command failed Detail: Command rejected SMTP code: 550 Additional SMTP info: 5.7.1

In an attempt to get more information, I made some minor edits to admin/lib.php to display debug information for system messages. From those logs, it appears that authentication is successful, but it dies out right at the very end. Here’s the whole debug (email addresses and servers changed):

Connection: opening to ssl://smtp.myhost.com:465, timeout=5, options=array ()
Connection: opened SERVER -> CLIENT: 220 pdx.myhost.com ESMTP
CLIENT -> SERVER: EHLO phplist.myphplist.com
SERVER -> CLIENT: 250-pdx.myserver.com250-PIPELINING250-SIZE 40960000250-ETRN250-AUTH PLAIN LOGIN250-AUTH=PLAIN LOGIN250-ENHANCEDSTATUSCODES250 8BITMIME
CLIENT -> SERVER: AUTH LOGIN
SERVER -> CLIENT: 334 VXNlcm5hbWU6
CLIENT -> SERVER: bWVnYXBob25lQG1vbnN0ZXJqYXZhZ3Vucy5jb20=
SERVER -> CLIENT: 334 UGFzc3dvcmQ6
CLIENT -> SERVER: TWhmTldwTGFxUWk4b1ByZVJKZ0wzZ0Z0TDNoOXNURQ==
SERVER -> CLIENT: 235 2.7.0 Authentication successful
CLIENT -> SERVER: MAIL FROM:<sender@myphplist.com>
SERVER -> CLIENT: 250 2.1.0 Ok
CLIENT -> SERVER: RCPT TO:<test@email.com>
SERVER -> CLIENT: 250 2.1.5 Ok
CLIENT -> SERVER: DATA
SERVER -> CLIENT: 354 End data with <CR><LF>.<CR><LF>
CLIENT -> SERVER: Received: from myisp.net [XX.XX.XX.XX] by phplist.myphplist.com with HTTP; Sun, 03 May 2020 06:24:33 -0700
CLIENT -> SERVER: Date: Sun, 3 May 2020 06:24:34 -0700
CLIENT -> SERVER: To: test@email.com
CLIENT -> SERVER: From: Sender <sender@myphplist.com>
CLIENT -> SERVER: Subject: Request for confirmation
CLIENT -> SERVER: Message-ID: <e85f02323b5b3a2799421c188842fe1e@myphplist.com>
CLIENT -> SERVER: X-phpList-version: 3.5.3
CLIENT -> SERVER: X-MessageID: systemmessage
CLIENT -> SERVER: X-ListMember: test@email.com
CLIENT -> SERVER: Precedence: bulk
CLIENT -> SERVER: List-Unsubscribe: <http://phplist.myphplist.com/?p=unsubscribe&email=test@email.com&jo=1>
CLIENT -> SERVER: MIME-Version: 1.0
CLIENT -> SERVER: Content-Type: text/plain; charset=UTF-8
CLIENT -> SERVER:
CLIENT -> SERVER: You have been subscribed to the following newsletters:
CLIENT -> SERVER:
CLIENT -> SERVER:
CLIENT -> SERVER: * My List
CLIENT -> SERVER:
CLIENT -> SERVER:
CLIENT -> SERVER: Please click the following link to confirm it's really you:
CLIENT -> SERVER:
CLIENT -> SERVER: https://phplist.myphplist.com/?p=confirm&uid=3c2c00f7e8169505135bb7b71caca6f3
CLIENT -> SERVER:
CLIENT -> SERVER:
CLIENT -> SERVER:
CLIENT -> SERVER: In order to provide you with this service we'll need to
CLIENT -> SERVER:
CLIENT -> SERVER: Transfer your contact information to phplist.myphplist.com
CLIENT -> SERVER: Store your contact information in your phplist.myphplist.com
CLIENT -> SERVER: account
CLIENT -> SERVER: Send you emails from phplist.myphplist.com
CLIENT -> SERVER: Track your interactions with these emails for marketing purposes CLIENT -> SERVER:
CLIENT -> SERVER: If this is not correct, or you do not agree, simply take no action and
CLIENT -> SERVER: delete this message.
CLIENT -> SERVER:
CLIENT -> SERVER: .
SERVER -> CLIENT: 550 5.7.1 Command rejected
SMTP ERROR: DATA END command failed: 550 5.7.1 Command rejected SMTP Error: data not accepted.
CLIENT -> SERVER: QUIT
SERVER -> CLIENT: 221 2.0.0 Bye
Connection: closed

It seems to die right at the end data command (the dot [.] surrounded by carriage returns and line feeds). I’d read another support request that said Exim was having DKIM problems with messages that end in a dot, but my host’s email server appears to be Postfix.

I think the only thing unique about my installation is that I have it installed at the root of a subdomain rather than a lists subdirectory in my main domain. I don’t think that’s the source of the issue, though, since I can send test emails without a problem. It’s just the transactional system messages like confirmation emails that seem to fail.

I know I’ve posted a lot of stuff here… and on my first post no less, so thank you for taking the time to read through all this. Hopefully the fix is something simple in my config.

So I think I’ve found my answer. Posting it here in case anyone else runs into a similar issue.

It turns out that the “only unique thing” actually is the source of my trouble in a way. My phpList installation is on a subdomain of the one I set up as my sending address. Apparently my hosting provider doesn’t like me sending transactional emails with a FROM address that different from the website sending it, even if it’s a subdomain.

To spell it out more clearly using the replacement addresses above, my phpList install is at phplist.myphplist.com and I was trying to send emails from sender@myphplist.com… that was causing confirmation emails to fail. I did a quick test and changed the FROM address on my transactional email to nobody@phplist.myphplist.com and I was able to successfully send a confirmation email. Of course, the thing got filed right to a spam folder, but at least it worked. I suspect that if my SMTP authentication also uses the full subdomain, I can remedy that spam folder problem as well.

Thanks for updating with a solution. You’ll probably need to tweak your server DKIM and SPF records. (I think).

1 Like

It probably wouldn’t hurt to tweak the SPF and DKIM records, but from what I can tell (and please correct me if I’m wrong (I’m still a bit of a neophyte when it comes to tweaking DNS records for emailing), since they’re all on the same shared host using the same mail servers, it shouldn’t require much, if any tweaking… right?

That could depend on your server cPanel/Plesk options. On one of my sites, the DKIM/SPF can be set very easily, pretty much a click and set option, on another server, it was all down to me to alter the A (or C?) records manually

Very helpful and informative. Thank for sharing this post.

1 Like