Here are some ideas for resolving this error.
This tool tracks and limits outbound mail based on the maximum percentage of failed or deferred messages a domain may send per hour.
The system examines outgoing mail over the last hour to determine whether the domain has exceeded the limit. When a domain exceeds the limit, it cannot send mail until enough time has passed so that the domain is back under the limit.
Our shared servers are set to a failure ratio of 90%. The tool is hardcoded to track deferrals/failures after 5/5 have been reached for the past hour.
Once the limit and 90% failure ratio have been hit, ALL mail for the domain will fail until the ratio drops below 90%. This will happen after the earliest failure(s) roll off the beginning of the hour.
Percentage counts do not start until there have been 5 defers or failures. This is what the (x/5) is indicating in the bounce message. The measurement of defers and failures kicks in once 5 defers or failures have occurred. So, if a user sends out 4 emails and 4 of them are deferred, we would see a (4/5) in the logs. If you have a 90% threshold on suspending email sending, even though 100% of this user's messages have failed, that user will still be able to send email because a total of 5 messages haven't bounced during that hour yet. The percentage of failures kicks in after 5 total failures, and then allows up to a 90% failure rate for the rolling hour.
Lets say you are trying to send out 60 emails, one each minute. If the first 5 emails go through without an error and then the next one fails, that would be the first failure. So in the first 6 minutes you have 1 failure. This earliest failure will mark the rollover of the next hour.
The next 10 emails go through fine, but then 4 emails after that fail. At this point, you have reached the 5 failure limit. It has now been 20 minutes altogether. However, the first failure was 6 minutes in. The domain sending out the emails would not be able to send any further email until an hour has passed since the first failure. In this case, you would need to wait 46 minutes to send another email, as the first failure would drop off at that point, leaving you with 4 failures in the past hour.
No, the “per hour” means “in the past 60 minutes”. When a defer or failure happens, if there are additional failures in the past 60 minutes, +1 is added to this count. The 'hour' is based on the earliest failure (that keeps it over 5/5).
No bounces until 5/5 messages (for the hour) are reached, from that point on it's 90% of the messages they send. If they are over 5/5 and 90%, further messages will immediately bounce and drop (they will not be re-queued), even if they are good messages.
This is a defense the server needs to avoid abuse - even spammers/hackers get lucky when they blast out illegitimate e-mail. Having a larger number of failures is suspicious not only to your local mail server, but to remote recipients as well.