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:<ja...@lottspot.vpn>
< 552 5.2.2 <ja...@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=n...@fake.tld

< action=551 User not found
<
recipient=ja...@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
  }
}

Reply via email to