For some very odd reason, the quota-status service is failing to enforce quotas. Every other aspect of my configuration is working with absolutely no problems. When I attempt delivery via LTMP, the message is, as expected, rejected due to the user's inbox being full.
root@smtp:/usr/local/etc/mail-config # nc -U /var/spool/postfix/private/dovecot-lmtp < 220 mx0.lottspot.com Dovecot ready.
LHLO localhost < 250-mx0.lottspot.com < 250-8BITMIME < 250-ENHANCEDSTATUSCODES < 250 PIPELINING MAIL FROM:root@localhost < 250 2.1.0 OK RCPT TO:james@lottspot.vpn < 552 5.2.2 james@lottspot.vpn Quota exceeded (mailbox for user is full)
The policy service however, just lets everything go right through. I know that accessing the userdb is not an issue, because I passed a bogus user before passing my real user and received the expected response.
root@smtp:/usr/local/etc/mail-config # nc -U /var/spool/postfix/private/policy-quota
recipient=noop@fake.tld
< action=551 User not found <
recipient=james@lottspot.vpn
< action=250 Quota status success <
I'm using Dovecot 2.2.15, and I have included my quota configuration below. If anyone wants to see full doveconf -n output, I can provide it, but figured it was a bit much for this case. Thanks in advance for any pointers!
--> Note: I'm the quota_status_* directives have been set as is for testing purposes only. I'm fully aware not to do that in production.
plugin { quota = maildir:User quota quota_rule = *:bytes=1G quota_rule2 = Trash:storage=+10%% quota_status_success = "250 Quota status success" quota_status_nouser = "551 User not found" quota_status_overquota = "552 5.2.2 Recipient mailbox is full" } service quota-status { executable = quota-status -p postfix unix_listener /var/spool/postfix/private/policy-quota { user = postfix group = wheel mode = 0666 } }