#1563 - Change bounce reporting to automated tool / Remove stale users
| Identifier | #1563 |
|---|---|
| Issue type | Feature request or suggestion |
| Title | Change bounce reporting to automated tool / Remove stale users |
| Status | Open |
| Tags |
Roadmap: Over the horizon (custom) Type: Avoiding e-mail spamblocks (custom) Type: Legal compliance / Privacy (custom) |
| Handling member | Deleted |
| Addon | core |
| Description | Currently you can manually run a bounce scan. Change this to a "setup bounce detection" tool. It'll be very similar, but rather than allowing deletion it will just show the detected bounces in a results table, and save the settings into hidden options.
Then bounce detection will happen regularly via a CRON hook, updating the events table (#3437) and facilitating the improved subscribers UI (#2142). Make sure we utilise our bounce API in mail2.php. The email_bounces table would probably be removed, as the events table would now serve this purpose. The full bounce email (subject and body) would be copied into the 'extra_data' field of the events table, to allow debugging / verification by a programmer. Add new config options for automatic unsubscribing for bounced e-mail addresses if they happen more than n times across x days. ('x' and 'n' would be the config options). Include also an option of whether this means blanking out member e-mail addresses too. Update tut_email after any changes made, so that the positive/negative spam-avoidance-advice correctly ties in with our debounce/destale functionality. |
| Steps to reproduce | |
| Related to | #2142 - Improved subscriber management #603 - Newsletter tracking, include tracking code integration |
| Funded? | No |
The system will post a comment when this issue is modified (e.g., status changes). To be notified of this, click "Enable comment notifications".


Comments
We should have a Cron hook that scans for email bounces based on a set of rules specified in this issue. Bounces should then be passed to a new bounce hook type, which will unsubscribe from whatever that hook is dealing with. Hooks to implement:
1) Newsletter
2) Notifications
3) Mantis tracker
1- Simple removal of record
2- Explicitly turn off all notifications in the database (so they don't default back to on).
3- Turn off notifications in the preferences, which is this query: UPDATE mantis_user_pref_table SET email_on_new=0,email_on_assigned=0,email_on_feedback=0,email_on_resolved=0,email_on_closed=0,email_on_reopened=0,email_on_bugnote=0,email_on_status=0,email_on_priority=0 WHERE user_id=xxx; (these settings work as a filter AFTER whatever can trigger a notification, so they take precedence)
We should have a Cron hook that finds stale accounts, as defined by a config option specifying inactive timeout
This can also then call the bounce hooks, with a parameter specifying it's of a stale type rather than a bounce type.
1) I think bounce detection should be integrated into the account registration process as well (if e-mail verification is on). Best practices are to keep your site from ending up on a blacklist. Unfortunately, some poorly-maintained webservers (including mine) get themselves on level 3 network-wide blacklists for failing to handle spammers. This might cause legitimate sites that happen to be on a blacklisted network to get blocked by e-mail providers (AT&T is especially strict about this). There are a couple ways we could go about this:
- a) A registration status link. Upon registering, members are given a link with a unique / secure code to check the status of their registration at any time. This page could tell them when the site's attempt to send them an e-mail verification failed. It could also provide them status of accounts needing to be manually verified by staff.
- b) If a user who just registered and is pending e-mail verification has an e-mail bounced, then we could perhaps have a config option on what to do: Do nothing, remove the e-mail address associated, delete the account, ban the account, or ban the account and IP address.
2) To be more compliant with the GDPR, we should separate the functionality of erasing the e-mail address / not e-mailing stale accounts into a different configuration, and allow for the ability to delete stale accounts automatically. This configuration allows us to pick what to do for accounts that have not logged in for x days:
- Do nothing
- Stop e-mailing the member
- Stop e-mailing the member and unsubscribe from all newsletters and notifications
- Delete the member's account
- Delete the member's account and anonymise all data associated with the member
We should also have a config option allowing to specify an automatic reminder e-mail to members x days before their account is considered stale and will have this action performed.