24 ms·
> The observation was that we could probably store the IP address, HELO string, FROM address and TO address in a table, and send back a 4xx "temporary failure"
by cuu508 5y ago
> The observation was that we could probably store the IP address, HELO string, FROM address and TO address in a table, and send back a 4xx "temporary failure" error the first time we saw that particular tuple (or "quad"). A real mail server which did SMTP properly would retry at some point, typically 15 minutes to an hour later. If it did retry and enough time had elapsed, we would allow it through.
I've run into this form of greylisting, it's quite annoying. My service sends one-time login links and authorization codes that expire in 15 minutes. If the email gets delayed, the user can just try again, right? Except I'm using AWS SES, so the next email may very well come from a different address and will get delayed again.
- loeg 5y agoYou could have your codes expire after an hour or day instead?
- cuu508 5y agoThat's a solution, but with tradeoffs: * security, an attacker has more time to intercept and use the links and codes. * UX, making the user wait 15+ minutes to do certain actions is quite terrible. I've had a couple support requests about this. The common theme seems to be the customer is using Mimecast, and the fix is to add my sender address in a whitelist somewhere in their Mimecast configuration.
- merb 5y agobtw. ses now offers unique sending ips