SESWatcher : how to prevent Amazon SES account from being suspended
At this moment, AWS SES service is the best affordable price and high-quality service to sending (and receiving) programmatic emails. But, one day your account could be suspended without notice, and that takes a big effort of requesting support to get it back to work.
So it’s good to prevent that siatuation happens by watching your Bounces Rate and Complaints Rate. One way to resolve problem when your rates being too-high than allowance, is send a big amount of dummy emails to your blackhole email address.
These is your send statistics :
- Deliveries : 2000
- Bounces : 180 ==> Bounces Rate : 180 / 2000 = 9%
- Complaints : 30 ==> Complaints Rate : 30 / 2000 = 1.5%
- Bounces : when your email didn’t send to existed email address (maybe your user type wrong or input fake one), we can pre-validate email before sending by using some email validator library or services like fast-email-validator
- Complaints : when your receiver mark your email as SPAM :( Poor you !!!
AWS SES rules :
- Bounces Rate : 5% => So you have to send more
(180 / 4%) - 2000 = 2500emails to reduce Bounces Rate to 4%
- Complaints Rate : 0.1% => So you have to send more
(30 / 0.07%) - 2000 = 40857emails to reduce Complaints Rate to 0.07%
==> Number emails send = max(2500, 40857) = 40857 emails
SPAM YOURSELF 40857 EMAILS !!! 😂
SESWatcher - Your SES watchman
It’s open source software at https://github.com/khanhicetea/seswatcher (My first PyPi package :D)
$ pip install seswatcher
- Step 1 : Get AWS Credential User within AmazonSESFullAccess policy
- Step 2 : Verify sender email in AWS SES
- Step 3 : Get a blackhole email address which receives un-important emails.
- Step 4 : Create a hourly cronjob that runs seswatcher
$ seswatcher [OPTIONS] ACCESS_KEY SECRET_KEY FROM_EMAIL TO_EMAIL
Get help :
$ seswatcher --help Usage: seswatcher [OPTIONS] ACCESS_KEY SECRET_KEY FROM_EMAIL TO_EMAIL Options: --region TEXT AWS SES Region (default is us-east-1) --interval INTEGER Timer interval --help Show this message and exit.