So my server out or the blue started rejecting all incoming mail and I pinpointed it to zen.spamhaus.org blocking everything because of an "excess volume" response from spamhaus.org:
2024-11-28T11:57:46.954637-07:00 mail postfix/smtpd[338]: NOQUEUE: reject: RCPT from mail-vk1-f177.google.com[209.85.221.177]: 554 5.7.1 Service unavailable; Client host [XX.XX.XX.XX] blocked using zen.spamhaus.org; Error: excess volume; https://check.spamhaus.org/returnc/vol/XX.XX.XX.XX/; from=<...@google.com> to=<example@example.com> proto=ESMTP helo=<mail-vk1-f177.google.com>
I have zen.spamhaus.org set as part of a few RBLs in the smtpd_recipient_restrictions: reject_rbl_client zen.spamhaus.org and commenting this one out does "solve" the issue in that emails at least get delivered.
So I was wondering if there might be a way to look at the excess volume error, and if I see that error then just pass/ignore that error rather than blocking the delivery. I was looking through the postfix docs but couldn't find anything obvious.
It seems like rbl_reply_maps has access to the return error codes, but I'm not sure if it has the ability to override or skip that rbl check.
The default_rbl_reply configuration option is mostly just to format an error message after the rbl rejected it. Similarily, maps_rbl_reject_code also only seems like a mechanism to translate to specific smtp error codes.
Am I missing something? It feels like there's got to be a way to customize handling the RBL response and turn specific rejections into a "pass" of some sort?