Hello, I'm trying to configure the quota-status service, but it seems I'm not successful with my director setup (2.2.9). I activate the quota-status service like this on my director server: $ cat 91-quota-status.conf ## ## Quota-Status configuration. ## # Load Module quota-status and listen on TCP/IP Port for connections. service quota-status { ? executable = quota-status -p postfix ? inet_listener { ??? address = 10.0.1.44 ??? port = 12340 ? } ? client_limit = 1 } # Plugin configuration. # Return messages for requests by quota status: success, nouser and overquota. plugin { ? quota_status_success = DUNNO ? quota_status_nouser = DUNNO ? quota_status_overquota = "552 5.2.2 Mailbox is over quota" } After restarting the director service I try to query the quota status service: printf "recipient=user at domain.de\nsize=100000\n\n" | nc 10.0.1.44 12340 The output is: action=DEFER_IF_PERMIT Invalid user settings. Refer to server log for more information. In the debug log of the director I see this: Feb 23 03:03:09 director01 dovecot: auth: Debug: userdb out: USER 1 user at domain.de mail=mdbox:/mnt/data01/domain.de/user/maildir home=/mnt/data01/domain.de/user proxy=Y master=<hidden> pass=<hidden> uid=5000 gid=1 quota_rule=*:storage=60593 quota_rule2=*:messages=100000 Feb 23 03:03:09 director01 dovecot: quota-status(user at domain.de): Error: user user at domain.de: Initialization failed: Namespace '': mkdir(/mnt/data01/domain.de/user/maildir/mailboxes) failed: Permission denied (euid=5000(vmail) egid=1(daemon) missing +w perm: /mnt, dir owned by 0:0 mode=0755) So the quota status service tries to access the mailbox of the user ON THE DIRECTOR. But the director has not mounted the mailboxes of the users, that's what the backend dovecots are for (proxy=Y). So the quota-status query is not proxied to the dovecot backend server I would assume. Does that mean I have to start the quota-status service on the dovecot backend servers and access it from the Postfix server directly? Currently the Postfixes can only reach the directors, not the backend servers. Is it possible to use the quota-status service on the director? Thanks for any hints and help Michael
Hello, any news on this topic? I tried it again with Dovecot 2.2.25, but it's still not possible to run the quota-status services on the directors. They try to access the mailbox of the user, which they obviously cannot. I'm not sure why Dovecot tries to open the mailbox, I would have expected just a dict-query (SQL) to check the quota. If the mailbox has to be opened, it has to be done on the correct backend Dovecot of the user. Is there any chance to fix this problem? Or am I doing something wrong here? Kind regards Michael Am 23.02.2015 um 03:09 schrieb Michael Kliewe:> Hello, > > I'm trying to configure the quota-status service, but it seems I'm not successful with my director setup (2.2.9). I activate the quota-status service like this on my director server: > > $ cat 91-quota-status.conf > ## > ## Quota-Status configuration. > ## > # Load Module quota-status and listen on TCP/IP Port for connections. > service quota-status { > executable = quota-status -p postfix > inet_listener { > address = 10.0.1.44 > port = 12340 > } > client_limit = 1 > } > # Plugin configuration. > # Return messages for requests by quota status: success, nouser and overquota. > plugin { > quota_status_success = DUNNO > quota_status_nouser = DUNNO > quota_status_overquota = "552 5.2.2 Mailbox is over quota" > } > > After restarting the director service I try to query the quota status service: > > printf "recipient=user at domain.de\nsize=100000\n\n" | nc 10.0.1.44 12340 > > The output is: > > action=DEFER_IF_PERMIT Invalid user settings. Refer to server log for more information. > > In the debug log of the director I see this: > > Feb 23 03:03:09 director01 dovecot: auth: Debug: userdb out: USER 1 user at domain.de mail=mdbox:/mnt/data01/domain.de/user/maildir home=/mnt/data01/domain.de/user proxy=Y master=<hidden> pass=<hidden> uid=5000 gid=1 quota_rule=*:storage=60593 quota_rule2=*:messages=100000 > Feb 23 03:03:09 director01 dovecot: quota-status(user at domain.de): Error: user user at domain.de: Initialization failed: Namespace '': mkdir(/mnt/data01/domain.de/user/maildir/mailboxes) failed: Permission denied (euid=5000(vmail) egid=1(daemon) missing +w perm: /mnt, dir owned by 0:0 mode=0755) > > So the quota status service tries to access the mailbox of the user ON THE DIRECTOR. But the director has not mounted the mailboxes of the users, that's what the backend dovecots are for (proxy=Y). So the quota-status query is not proxied to the dovecot backend server I would assume. > > Does that mean I have to start the quota-status service on the dovecot backend servers and access it from the Postfix server directly? Currently the Postfixes can only reach the directors, not the backend servers. > > Is it possible to use the quota-status service on the director? > > Thanks for any hints and help > Michael
Hi! quota-status is not supported in proxy configuration. You should use quota_warning and quota_over_flag scripts instead. Aki On 08.10.2016 03:51, Michael Kliewe wrote:> Hello, > any news on this topic? I tried it again with Dovecot 2.2.25, but it's > still not possible to run the quota-status services on the directors. > They try to access the mailbox of the user, which they obviously > cannot. I'm not sure why Dovecot tries to open the mailbox, I would > have expected just a dict-query (SQL) to check the quota. If the > mailbox has to be opened, it has to be done on the correct backend > Dovecot of the user. > Is there any chance to fix this problem? Or am I doing something wrong > here? > Kind regards > Michael > > Am 23.02.2015 um 03:09 schrieb Michael Kliewe: >> Hello, >> >> I'm trying to configure the quota-status service, but it seems I'm >> not successful with my director setup (2.2.9). I activate the >> quota-status service like this on my director server: >> >> $ cat 91-quota-status.conf >> ## >> ## Quota-Status configuration. >> ## >> # Load Module quota-status and listen on TCP/IP Port for connections. >> service quota-status { >> executable = quota-status -p postfix >> inet_listener { >> address = 10.0.1.44 >> port = 12340 >> } >> client_limit = 1 >> } >> # Plugin configuration. >> # Return messages for requests by quota status: success, nouser and >> overquota. >> plugin { >> quota_status_success = DUNNO >> quota_status_nouser = DUNNO >> quota_status_overquota = "552 5.2.2 Mailbox is over quota" >> } >> >> After restarting the director service I try to query the quota status >> service: >> >> printf "recipient=user at domain.de\nsize=100000\n\n" | nc 10.0.1.44 12340 >> >> The output is: >> >> action=DEFER_IF_PERMIT Invalid user settings. Refer to server log for >> more information. >> >> In the debug log of the director I see this: >> >> Feb 23 03:03:09 director01 dovecot: auth: Debug: userdb out: USER >> 1 user at domain.de >> mail=mdbox:/mnt/data01/domain.de/user/maildir >> home=/mnt/data01/domain.de/user proxy=Y master=<hidden> >> pass=<hidden> uid=5000 gid=1 >> quota_rule=*:storage=60593 quota_rule2=*:messages=100000 >> Feb 23 03:03:09 director01 dovecot: quota-status(user at domain.de): >> Error: user user at domain.de: Initialization failed: Namespace '': >> mkdir(/mnt/data01/domain.de/user/maildir/mailboxes) failed: >> Permission denied (euid=5000(vmail) egid=1(daemon) missing +w perm: >> /mnt, dir owned by 0:0 mode=0755) >> >> So the quota status service tries to access the mailbox of the user >> ON THE DIRECTOR. But the director has not mounted the mailboxes of >> the users, that's what the backend dovecots are for (proxy=Y). So the >> quota-status query is not proxied to the dovecot backend server I >> would assume. >> >> Does that mean I have to start the quota-status service on the >> dovecot backend servers and access it from the Postfix server >> directly? Currently the Postfixes can only reach the directors, not >> the backend servers. >> >> Is it possible to use the quota-status service on the director? >> >> Thanks for any hints and help >> Michael