Tell HN: Gmail rate limiting emails from AWS SES
67 points| saradhi | 2 years ago
Background:
One of my apps provides time-sensitive email notifications, for 60-90 days, to the subscribers(paid) - so it is critical to deliver emails. We have been using the same email provider and have been using AWS SES for a couple of years now. We have the SPF, and DKIM all verified. Yet, for the last 3 days, we are getting the below email
```
Sub: Delivery Status Notification (Failure)
Body: Our system has detected an unusual rate of<CRLF>421-4.7.28 unsolicited mail originating from your IP address. To protect our<CRLF>421-4.7.28 users from spam, mail sent from your IP address has been temporarily<CRLF>421-4.7.28 rate limited. Please visit<CRLF>421-4.7.28 https://support.google.com/mail/?p=UnsolicitedRateLimitError to<CRLF>421 4.7.28 review our Bulk Email Senders Guidelines.>
```
Troubleshooting till now: I have got the AWS tech support team confirming my email configuration has no issues. AWS team has informed "The current throttling is just that Gmail is seeing a lot of messages from the SES shared IP and is throttling the messages"
>>> Is anyone facing the same issue with AWS? or similar issues with other bulk email service providers?
>>> How do you deal with such issues in the future? Set up alternative email service providers.
>>> Is this the side effect of Gmail's dormant account deletion rolled out last week?
jeroenhd|2 years ago
This sounds like something Amazon should figure out more than anything. There's probably something going on with a customer or theirs (misconfiguration, spammer, vulnerability exploited) that's triggering spam detection rules.
At least Google reports the issue back to you instead of silently dropping all of your email like many other mail servers do.
nomilk|2 years ago
Checking out the pricing page, a dedicated IP costs $24.95 per month, which would be more than the actual cost of emails for many small-medium apps (e.g. 100K emails per month would be about $10).
Ooc, do other email providers have the same shared-IP problem? E.g. Mailgun, Postmark, Sendgrid?
Source: https://aws.amazon.com/ses/pricing/
alyandon|2 years ago
baobabKoodaa|2 years ago
pembrook|2 years ago
Thus, the SES IP pools have the worst IP reputations among all the SMTP-based senders. I would never use them (or an ESP that sends with them) in a million years.
The reason why cheap = bad in email is because Spammers have the lowest conversion rates of all senders (their emails are always untargeted), so price is their number 1 consideration.
You can cheap out elsewhere in your stack. But never cheap out on email — especially if you’re not sending high volume enough for a dedicated IP.
albert_e|2 years ago
I never had to use SES or really Email for that matter in my own architecture.
Since we get so immersed in best practices and recommendations of good architecture pushed by these very cloud providers (AWS, Azure, etc) -- this kind of candid information is usually not available unless we burn our fingers and learn through own experience.
I wish there was more efficient way of such practical knowledge to be shared among practitioners. Current discussion forums etc work to an extent but just hope there was much more effective way to spread awsreness.
kureikain|2 years ago
SES is the best among the provider.
They treat spam very seriously, compare to other. You would need to maintain a baseline, failure to do so will get the account into soft-susspend or permanent suspended quickly.
AWS, being an engineering focus product, provider tooling and automated around bouncing, spam reporting handling. Having sophisicated tooling help user deal with that.
They strongly againtst and not suggest end-user to buy dedicated IP. Where as other providers always want user to pay more for "dedicated ip" to "get better delivery".
AWS has procedure, best practice to encounrage slowly warmup when sending mass volume. They had their own rate limit (14 messages per second by default), move the account out of sandbox, a good domain/sender verification.
They are the best among providers when it comes to email.
Sometimes they appear to be worst than others, but that is a specific case. The way email works will always have false positive. If user decided the email is spam(even it isn't) and keep reporting it may appear in a certain spam list.
manishsharan|2 years ago
nugget|2 years ago
slau|2 years ago
https://docs.aws.amazon.com/ses/latest/dg/dedicated-ip.html
kunwon1|2 years ago
If you and I are both using SES to send to the same person, and my message results in a hard bounce, then your messages to that person will start to silently fail.
[1] https://docs.aws.amazon.com/ses/latest/dg/sending-email-glob...
johanneswu|2 years ago
> If an address is on the global suppression list, but not on your account level suppression list (which means you want to send to it), and you do send to it, Amazon SES will still attempt delivery, but if it bounces, the bounce will affect your own reputation
[1] https://docs.aws.amazon.com/ses/latest/dg/lists-and-subscrip...
messutied|2 years ago
saradhi|2 years ago
The differentiating factor between our current AWS SES plan and the competitors (mentioned in the comments) is having a dedicated IP. With our current volume, none of the competitors are anyway near AWS SES costs. So, moving to a dedicated IPs thats cost 25$ extra not only solves our issue, but also no change in code/infrastructure.
slau|2 years ago
The managed IP is an option, although I’ve never used it.
When I was the VPoE at Dixa, we switched over to SES, and we had 3 dedicated IPs, and for our volume back then (a few thousand emails a day), this worked very well. I don’t know if they ever hit scaling issues after I left.
ttul|2 years ago
Email delivery is inherently complex due to the various factors that contribute to deliverability, including IP reputation, domain reputation, content filtering, and recipient engagement. Shared IP pools can indeed be challenging because of the "bad neighbor" effect, where one sender's bad behavior can affect the reputation of all senders using that IP.
However, shared pools can also prove advantageous because it's harder for a receiver to block your IP if tons of email comes from it from a wide variety of senders. Receivers are trying to reduce collateral damage while protecting their users from spam and phishing - this is literally the reward model feeding their machine learning models. If your email travels alongside millions of other emails that are mostly received well, that IP will not be blocked; whereas, if you send email from your own IP, it doesn't take much for a receiver to pull the trigger and block you since there is very little consequence other than blocking your traffic.
Not that anyone here asked, but if you want a "best practice", try multiple different services and approaches and find the one that works best for you. There is no perfect email sending service for all senders and as mentioned above, the ground game is changing all the time.
LeonM|2 years ago
Though Gmail responds citing your IP, Gmail and all other large email services don't use IP filtering. Just about all email service providers use domain reputation, since IPs are ephemeral.
If you are sending transactional emails that your customers have agreed to, then your domain (!= ip) rating will improve over time and there will be less countermeasures, regardless of which IP you use to send.
> Is anyone facing the same issue with AWS? or similar issues with other bulk email service providers?
This is just Gmail doing it's thing (the right thing, in my opinion, contrary to most HN sentiment). It is independent of which sender you use.
> How do you deal with such issues in the future? Set up alternative email service providers.
Use DMARC reporting to verify that all your email is sent with DKIM alignment, to make sure that you aren't causing the problem. This is independent of email service provider.
But as explained, you are being rate limited, not blocked. Email will be delivered, it'll just take longer. You state that you have a 60-90 day margin for delivery, so I wouldn't worry about it too much.
> Is this the side effect of Gmail's dormant account deletion rolled out last week?
No.
leetrout|2 years ago
https://ipinfo.io/AS14782
joshstrange|2 years ago
I'd love to hear what other people are using to send transactional emails (no marketing). Ideally I'd find a provider that could "scale down to $0".
baobabKoodaa|2 years ago
inopinatus|2 years ago
anamexis|2 years ago
LinuxBender|2 years ago
LeonM|2 years ago
OP is doing just that, Amazon SES = Simple Email Service
topicseed|2 years ago
ctas|2 years ago
ESPs check multiple factors. Both IP and domain reputation play a role. They will check your return path / envelope sender domain reputation and your IP. Your domain will start with it's own reputation, but can be boosted with a good IP reputation. But if your domain had bad sending behaviour in the past, that might be an issue.
Source: I'm running a transactional mail service that solely works with shared IPs: https://www.markix.com.
cuu508|2 years ago
johnklos|2 years ago
vladvasiliu|2 years ago
IIRC, they haven't started to actually close the accounts just yet, so I doubt it's related.
bdcravens|2 years ago
jeffbee|2 years ago
hstaab|2 years ago
In the recent past I’ve used Postmark, but they were acquired by a marketing company.
erksa|2 years ago
1)SPF,
2)DKIM,
3)DMARC [2] (DMARC is often forgotten or can be super noisy when set up. Postmarc offers a aggregation service for free that sends you a weekly summary),
4)Dedicated IP
5)Reverse IP look up [1] (locate a dns PTR record for that IP address) should match the sender.
Not everyone supports 5).
4 and 5 is what you end up paying for, but totally worth it. Sendgrid, SES, Mailgun etc.
[1] https://www.mailgun.com/blog/deliverability/reverse-dns-whit...
[2] https://dmarc.postmarkapp.com/
ctas|2 years ago
I run a couple other businesses and moved all of my transactional email sending over to Markix.
Would love to have a chat with anyone that might be starting a new project and is open to try out a new mail service (mail in bio).
the_common_man|2 years ago
pixl97|2 years ago
unknown|2 years ago
[deleted]
gog|2 years ago
[deleted]
0ct4via|2 years ago
"Omit internet tropes" is pretty clear in the guidelines, and failing to make any kind of intelligent or reasoned argument adds nothing to the conversation here. Do better.
ds|2 years ago
The worst is that cloudflare did not let me know this was happening until I saw I was missing some emails and went hunting. About 20% of my emails would just get rejected silently with "delivery failed" in the logs. I wouldnt blame cloudflare so much if they kept attempting to redeliver, but they did not. They simply give up.