dear dovecot users, trying to setup this quota-status thingy in dovecot so postfix can query the quota on the mailbox via following in main.cf smtpd_recipient_restrictions ??? ... ??? check_policy_service inet:127.0.0.1:12340 I got this in my dovecot config service quota-status { ? client_limit = 1 ? executable = quota-status -p postfix ? inet_listener { ??? port = 12340 ? } } plugin { ? ... ? quota_status_nouser = DUNNO ? quota_status_overquota = 552 5.2.2 Mailbox is over quota / Mailbox ist voll ? quota_status_success = DUNNO ? ... } but whenever I try I get this error: Apr 24 20:04:32 cx20 dovecot[7236]: quota-status(beckidouche at domain.com)<7290><qQpiJzAqo156HAAAct2Jzg>: Error: quota check failed: Failed to get quota resource STORAGE_BYTES for INBOX: quota-dict: dict_lookup(priv/quota/storage) failed: net_connect_unix(/var/run/dovecot/dict) failed: Permission denied (euid=303(vmail) egid=303(vmail) missing +r perm: /var/run/dovecot/dict, we're not in group 489(dovecot), dir owned by 0:0 mode=0755) (reply took 0.000 secs (0.000 in dict wait, 0.000 in other ioloops, 0.000 in locks)) what am I missing here? perhaps too many hours in front of the screen today already ;) thanks a lot for your time & help greetings Becki /* ==================================================================================================================================== */ cx20: # doveconf -n # 2.3.3 (dcead646b): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.3 (f018bbab) # OS: Linux 4.12.14-lp151.28.48-default x86_64? ext4 # Hostname: cx20.domain.com auth_debug = yes auth_debug_passwords = yes auth_mechanisms = plain login cram-md5 apop auth_verbose = yes auth_verbose_passwords = yes dict { ? quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext } first_valid_uid = 300 mail_debug = yes mail_gid = vmail mail_home = /srv/maildirs/%d/%n mail_location = maildir:/srv/maildirs/%d/%n mail_plugins = " quota" mail_privileged_group = vmail mail_uid = vmail managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext namespace inbox { ? inbox = yes ? location ? mailbox Drafts { ??? special_use = \Drafts ? } ? mailbox Junk { ??? special_use = \Junk ? } ? mailbox Sent { ??? special_use = \Sent ? } ? mailbox "Sent Messages" { ??? special_use = \Sent ? } ? mailbox Trash { ??? special_use = \Trash ? } ? prefix ? separator = / ? type = private } passdb { ? args = /etc/dovecot/dovecot-sql.conf.ext ? driver = sql } plugin { ? quota = dict:User quota::proxy::quota ? quota_grace = 10%% ? quota_rule = *:bytes=102400000 ? quota_rule2 = Trash:storage=+100M ? quota_status_nouser = DUNNO ? quota_status_overquota = 552 5.2.2 Mailbox is over quota / Mailbox ist voll ? quota_status_success = DUNNO ? quota_warning = storage=95%% quota-warning 95 %u ? quota_warning2 = storage=80%% quota-warning 80 %u ? sieve = file:~/sieve;active=~/.dovecot.sieve } protocols = imap pop3 lmtp sieve service auth { ? unix_listener auth-userdb { ??? mode = 0777 ? } } service imap-login { ? inet_listener imap { ??? port = 143 ? } ? inet_listener imaps { ??? port = 993 ??? ssl = yes ? } } service lmtp { ? unix_listener /var/spool/postfix/private/dovecot-lmtp { ??? group = postfix ??? mode = 0666 ??? user = postfix ? } } service pop3-login { ? inet_listener pop3 { ??? port = 110 ? } ? inet_listener pop3s { ??? port = 995 ??? ssl = yes ? } } service quota-status { ? client_limit = 1 ? executable = quota-status -p postfix ? inet_listener { ??? port = 10042 ? } } service quota-warning { ? executable = script /usr/local/bin/quota-warning.sh ? unix_listener quota-warning { ??? group = vmail ??? mode = 0660 ??? user = vmail ? } ? user = vmail } ssl_cert = </etc/dehydrated/certs/webmail.domain.com/fullchain.pem ssl_cipher_list = ALL:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW at STRENGTH ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it ssl_options = no_compression ssl_prefer_server_ciphers = yes userdb { ? driver = prefetch } userdb { ? args = /etc/dovecot/dovecot-sql.conf.ext ? driver = sql } verbose_proctitle = yes protocol imap { ? mail_plugins = " quota imap_quota" } /* ==================================================================================================================================== */
Hello Becki, On 24.04.20 20:28, Admin Beckspaced wrote:> trying to setup this quota-status thingy in dovecot > > but whenever I try I get this error: > > what am I missing here?as I couldn't find any information regarding 'service dict' in your doveconf -n: Please have a look in your /etc/dovecot/conf.d/10-master.conf (or elswhere in your Dovecot configs) and find a config option for service dict. The default is mostly something like this: service dict { # If dict proxy is used, mail processes should have access to its socket. # For example: mode=0660, group=vmail and global mail_access_groups=vmail unix_listener dict { #mode = 0600 #user #group } } Please change it to: service dict { # If dict proxy is used, mail processes should have access to its socket. # For example: mode=0660, group=vmail and global mail_access_groups=vmail unix_listener dict { mode = 0660 user = vmail group = vmail } } restart Dovecot and test if it works. HTH and kind regards, Markus
Am 24.04.2020 um 21:10 schrieb Markus Winkler:> Hello Becki, > > On 24.04.20 20:28, Admin Beckspaced wrote: >> trying to setup this quota-status thingy in dovecot >> >> but whenever I try I get this error: >> >> what am I missing here? > > as I couldn't find any information regarding 'service dict' in your > doveconf -n: > > Please have a look in your /etc/dovecot/conf.d/10-master.conf (or > elswhere in your Dovecot configs) and find a config option for service > dict. > > The default is mostly something like this: > > service dict { > ? # If dict proxy is used, mail processes should have access to its > socket. > ? # For example: mode=0660, group=vmail and global > mail_access_groups=vmail > ? unix_listener dict { > ??? #mode = 0600 > ??? #user > ??? #group > ? } > } > > Please change it to: > > service dict { > ? # If dict proxy is used, mail processes should have access to its > socket. > ? # For example: mode=0660, group=vmail and global > mail_access_groups=vmail > ? unix_listener dict { > ??? mode = 0660 > ??? user = vmail > ??? group = vmail > ? } > } > > restart Dovecot and test if it works. > > HTH and kind regards, > Markus >Hi Markus, super! Thanks a lot for the hint. after activating the dict service with proper user & group all is working fine. Thanks & have a nice weekend ;) Greetings Becki