0
votes

We have some issues related with AWS SES bounce and complain emails, and we send send emails on these conditions. these conditions are as follows:

1) When new user registered, 2) When user forget his/her password and 3) When he/she purchased any video from ourplatform. To send email we have implemented AWS SES mail service and successfully managed to send email from AWS SES. But here I have some doubt to handle Bounced and Complaint email. According to this post on stackoverflow:

Handle hard bounces / complaints or just stick to suppression list?

We have managed list of emails in our database, when new user 1st time registered into our platform and getting notification for bounced and complaint notifications from AWS SNS. But here are some case I want to discuss with you:

Bounce: When user 1st time registered into our platform and his/her email does not exist i.e. [email protected] in that case we save his/her email into our bounced email list, but when 2nd time he creates a email with the same email id ( [email protected] ) and want to register with our platform again then how we will remove that email from list because we have already black listed that email in our platform.

Complaint: In 2nd case when user accidentally put our platforms email as spam when we send him/her a email and getting complaint notifications for that email and for complaint emails we have managed list of complaint emails and saved that email in this list so that same user can not get email from the next time but after some time that user white list us from spam and wants our email notifications.

Note: Is this necessary to handle all bounced or complaint email into our database because randomness of emails are infinite and for all random emails we have to handle into our database. and before send emails to any new registered user, 1st we have to process our bounced and complaint emails list then we will decide the user is eligible to receive our email or not.

Sorry for my bad English.

1

1 Answers

0
votes

The StackOverflow Question you linked to covers this in the Answer.

Yes, you should maintain your own database table of at least some of the permanent bounced emails, something like:

record ID (auto increment), email address, bounce type: invalid mailbox | user complaint | rejected for content | rejected for spam blacklist

Bounce: "when 2nd time he creates a email with the same email id ... how we will remove that email from list because we have already black listed that email in our platform?"

When the user tries to add the email, you query the email address in your table, you see the type is "invalid mailbox", and then reject it as invalid. You could possibly also log the IP address to catch spammers trying to create fake accounts.

Complaint: "... but after some time that user white list us from spam and wants our email notifications."

When the user tries to add the email, you query the email address in your table, you see the type is "user complaint", and maybe ask them "are you sure?" before adding them back to your mail list. You change the type of the email in your database to something like "user confirmed OK to send"

You could also just add one extra field to your existing mailing list table to hold the bounce type, with the default type being 0 / OK / not bounced. Then when sending email you skip sending emails where the type is not 0 / OK.

But in hard bounced if user will have valid email address after put his email address in table and he/she wants our subscription then how we could handle

You could allow them to re-add the address and set the type back to 0, but this might be a fake address like "[email protected]."

If you want to let them do this you could have a second field "times bounce was cleared" and add +1 each time the address is set back to 0 / OK / mail allowed. If this counter reaches 3-5 you never let them add the email again. They must use a different email.

what about soft bounce

"Transient" (soft) bounces should be ignored. SES will try again later and if it still fails then you will get a hard bounce.