back to phpList.org

Bounce action Suggestion: Add to list

Trying to work out a way to have a special follow up list action for complaints received on bounces I’ve realised this would be a helpful feature for the bounce actions.

Some MTAs (including SES) bounces a message when a user marks it as SPAM. Instead of simply unsubscribing that user (what we currently do) I was considering an action that would allow me to send an email to that user asking him to unsubscribe instead of marking the message as SPAM and explaining the reasons. This could be done if I could have this rule with an action like “Add user to XX list” that could be repeated on a daily basis.

As an alternative/complimentary suggestion a webhook would also be great as an action.

If someone can suggest an alternative way to archive the same with current code feature I would be most grateful.

@luison I’m not sure that I see how the outcome would be any different. The subscriber would be blacklisted either way.

But you might be misunderstanding how the spam bounce is being created. It is most likely through anti-spam software, such as Spam Assassin, on the remote mail server which is rejecting the email before it gets to the subscriber.

If a subscriber marks an email as spam, such as through Yahoo mail or gmail, then I do not think that would generate a bounce. There are other ways for spam complaints to be reported. Do you have an example of a bounce that you think was caused by the subscriber marking it as spam?

The Bounce Statistics plugin https://resources.phplist.com/plugin/bouncestatistics tries to analyse the reason for each bounce. It might help you see which bounces were caused by the email being rejected as spam.

1 Like

Hi @duncanc, thanks for prompt feedback.

Yes I could be wrong but my understanding is that some services like SES sends a “special” message, not a bounce, when a message is delivered to a client and he manually marks it as SPAM (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/e-faq.html#e-faq-cm).

Messages are basically composed of:

From: complaints@eu-west-1.email-abuse.amazonses.com
Subject: complaint about message from 54.XXX.X.XX
To: bounces-gis@domain

(edited complete sample)

------=_Part_8030344_[797336465](https://xxxxxdomain/admin/797336465).1568988194399
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

This is an email abuse report for an email message from amazonses.com on Sun, 15 Sep 2019 09:01:[47 +0000](https://xxxxxdomain/admin/47%20+0000)

------=_Part_8030344_[797336465](https://xxxxxdomain/admin/797336465).1568988194399
Content-Type: message/feedback-report
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Feedback-Type: abuse
User-Agent: Yahoo!-Mail-Feedback/2.0
Version: 0.1
Original-Mail-From: <0102016d342819d1-c7e34bb[3-3653-4](https:/xxxxxdomain/admin/3-3653-4)f22-bbb1-5920b77ae[610-000000](https://xxxxxdomain/admin/610-000000)@eu-west-1.amazonses.com>
Original-Rcpt-To: aharixxxxxxxx@yahoo.com
Received-Date: Sun, 15 Sep 2019 09:01:[47 +0000](https://xxxxxdomain/admin/47%20+0000)
Reported-Domain: amazonses.com
Authentication-Results: authentication result string is not available

And include the body of your message.

On our manual process of bounces my method lately has been:

  • remove all possible false positives from a large grep rule. Ignore and delete bounce.
  • unsubscribe user if he issued a complaint.
  • some other direct rules for permanent errors… (domain not existant, relay not permited, etc). Blacklist email, unsubscribe
  • let the rest count a bounce

My intention is to change the second one for a “courtesy email to unsubscribe” list instead of a direct unsubscribe. I could do it from within AWS itself as I could possibly call the API from there (instead of receiving an email) but that requires a bit of setup in AWS.

@luison Thanks, that’s interesting. It appears that the subscriber marked the email as spam in their Yahoo mail, Yahoo then sent a complaint to SES, who then sent a bounce to phplist.

Have you looked at registering with Yahoo for their complaint feedback loop https://help.yahoo.com/kb/sign-manage-yahoo-complaint-feedback-loop-program-sln3438.html

I think that is a better way to try to handle complaints. Also I think gmail has something similar.

How does that bounce appear in phplist on the view bounces page? Is phplist able to identify the subscriber and the campaign id from that bounce? If not,then currently the advanced bounce rules won’t be applied to the bounce.

Probably a better way to handle complaints is to try to identify those bounces in some way and then process them separately to the normal bounces.

Hi @duncanc. Sorry but been extremely busy this holidays. Not sure how phplist auto bounce rules treat it. I’ve been trying to improve our manual rules for sometime and this is one of our first ones.

Regular expression:
(From:(.*)complaints.*email-abuse\.amazonses\.com)
Mark as unconfirmed.

As we use SES to deliver, all of this kind of complaints will come from Amazon not the address host. I have others from other non-yahoo MX servers too. That’s why the interest. The emails contain the headers:

Date: Wed, 4 Dec 2019 09:30:18 +0000
To: subscriber@yahoo.com
From: Golf in Spain <sender@MYDOMAIN.COM>
Subject: Subject
Message-ID: <0102016ed03efb54-ea405643-ea12-47c4-96c2-12c39577cd15-000000@eu-west-1.amazonses.com>
X-phpList-version: 3.4.6
X-MessageID: 489
X-ListMember: subscriber@yahoo.com

I am actually considering working on SES SNS notifications to handle complaints and interact with phplist API but it requires quite a bit of coding and meanwhile would like to stick as best as possible with phplist bounce handling.

As explained earlier it would be ideally to mark the action of this (or other grep rule) in a form that allow us to add that subscriber to an specific list (ie, “marked email as spam”).

thanks.