quota warnings not sent out anymore

mj lists at merit.unu.edu
Mon Dec 6 11:33:58 UTC 2021


Additional info: there seems to be permission-related issue anyway, as 
we also see messages like these in our logs:

> 2021-12-03T19:06:15.032873+01:00 hostname dovecot - - -  quota-warning: Error: lda(username,)Error: net_connect_unix(/var/run/dovecot/stats-writer) failed: Permission denied

But are permissions of stats-writer related to not sending out quota 
notifications?

MJ

Op 06-12-2021 om 12:10 schreef mj:
> Hi,
> 
> We suddenly realised that our maildir quota warnings are no longer sent 
> out. We don't understand why not.
> 
> This is dovecot 2.3.4.1 on debian 10.11. We use a script to send out the 
> notification, adapted from the dovecot wiki here: 
> (https://doc.dovecot.org/configuration_manual/quota/)
> 
> Our quota notification script is:
> 
>> #!/bin/sh
>> PERCENT=$1
>> USER=$2
>> cat << EOF | /usr/lib/dovecot/dovecot-lda -d $USER -o 
>> "plugin/quota=maildir::noenforcing"
>> From: noreply at domain.com
>> Subject: quota warning
>>
>> Your mailbox is now $PERCENT% full.
>>
>> Please delete or archive items to decrease your mailbox size.
> 
> Our complete doveconf -n output is at the end of this email.
> 
> When calling the script manually as user root, it works perfectly. But 
> as user vmail or dovecot, no notifications are sent at all.
> 
> I guess this is relevant:
> 
>> root at dovecot:/etc/dovecot# ls -l /var/run/dovecot/
>> total 8
>> srw------- 1 root    root      0 Dec  6 00:00 anvil
>> srw------- 1 root    root      0 Dec  6 00:00 anvil-auth-penalty
>> srw------- 1 dovecot root      0 Dec  6 11:34 auth-client
>> srw------- 1 dovecot root      0 Dec  6 11:34 auth-login
>> srw------- 1 root    root      0 Dec  6 11:34 auth-master
>> -rw------- 1 root    root     32 Jul 19 17:39 auth-token-secret.dat
>> srw-rw-rw- 1 vmail   vmail     0 Dec  6 11:34 auth-userdb
>> srw------- 1 dovecot root      0 Dec  6 11:34 auth-worker
>> srw------- 1 root    root      0 Dec  6 11:34 config
>> srw-rw---- 1 root    dovecot   0 Dec  6 11:34 dict
>> srw-rw---- 1 root    dovecot   0 Dec  6 11:34 dict-async
>> srw------- 1 root    root      0 Dec  6 11:34 director-admin
>> srw-rw-rw- 1 root    root      0 Dec  6 11:34 dns-client
>> srw------- 1 root    root      0 Dec  6 11:34 doveadm-server
>> lrwxrwxrwx 1 root    root     25 Dec  6 00:00 dovecot.conf -> 
>> /etc/dovecot/dovecot.conf
>> drwxr-xr-x 2 root    root     40 Jul 19 17:39 empty
>> srw-rw---- 1 root    dovecot   0 Dec  6 11:34 imap-hibernate
>> srw------- 1 root    root      0 Dec  6 11:34 imap-master
>> srw-rw-rw- 1 root    root      0 Dec  6 11:34 imap-urlauth
>> srw------- 1 dovecot root      0 Dec  6 11:34 imap-urlauth-worker
>> srw-rw-rw- 1 root    root      0 Dec  6 11:34 indexer
>> srw------- 1 dovecot root      0 Dec  6 11:34 indexer-worker
>> srw------- 1 dovecot root      0 Dec  6 11:34 ipc
>> srw-rw-rw- 1 root    root      0 Dec  6 11:34 lmtp
>> srw------- 1 root    root      0 Dec  6 11:34 log-errors
>> drwxr-x--- 2 root    nogroup 120 Dec  6 11:34 login
>> srw------- 1 root    root      0 Dec  6 11:34 master
>> -rw------- 1 root    root      6 Dec  6 00:00 master.pid
>> srw------- 1 root    root      0 Dec  6 11:34 old-stats
>> prw------- 1 root    root      0 Dec  6 11:34 old-stats-mail
>> prw------- 1 root    root      0 Dec  6 11:34 old-stats-user
>> srw------- 1 vmail   root      0 Dec  6 11:34 quota-warning
>> srw------- 1 root    root      0 Dec  6 11:34 replication-notify
>> prw------- 1 root    root      0 Dec  6 11:34 replication-notify-fifo
>> srw------- 1 dovecot root      0 Dec  6 11:34 replicator
>> srw-rw---- 1 vmail   vmail     0 Dec  6 11:34 stats-reader
>> srw-rw---- 1 vmail   vmail     0 Dec  6 11:34 stats-writer
>> drwxr-x--- 2 root    nogroup  80 Dec  6 11:34 token-login
> 
> Can anyone help, and explain what is going on here?
> 
> Thank you very much in advance for a reply!
> 
> MJ
> 
> The doveconf -n output:
> 
>> root at imap:/etc/dovecot# doveconf -n
>> # 2.3.4.1 (f79e8e7e4): /etc/dovecot/dovecot.conf
>> # Pigeonhole version 0.5.4 ()
>> # OS: Linux 4.19.0-17-amd64 x86_64 Debian 10.11 xfs
>> # Hostname: mail.company.com
>> auth_debug = yes
>> auth_failure_delay = 10 secs
>> auth_master_user_separator = *
>> auth_mechanisms = plain login
>> auth_username_format = %Ln
>> auth_verbose = yes
>> auth_verbose_passwords = sha1
>> default_vsz_limit = 512 M
>> deliver_log_format = %f | %s | msgid=%m: %$
>> lda_mailbox_autocreate = yes
>> lda_mailbox_autosubscribe = yes
>> login_greeting = Dovecot ready.
>> login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e 
>> %c lport=%a
>> mail_gid = vmail
>> mail_location = maildir:/var/vmail/%Ln/Maildir:LAYOUT=fs:DIRNAME=mAildir
>> mail_plugins = acl lazy_expunge zlib quota mail_log notify
>> mail_shared_explicit_inbox = yes
>> 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 ihave
>> namespace {
>>   list = children
>>   location = 
>> maildir:/var/vmail/%%u/Maildir:LAYOUT=fs:DIRNAME=mAildir:INDEX=/var/vmail/%u/shared/%%u 
>>
>>   prefix = shared/%%n/
>>   separator = /
>>   subscriptions = no
>>   type = shared
>> }
>> namespace inbox {
>>   inbox = yes
>>   location =   mailbox "Deleted items" {
>>     special_use = \Trash
>>   }
>>   mailbox Drafts {
>>     special_use = \Drafts
>>   }
>>   mailbox Junk {
>>     special_use = \Junk
>>   }
>>   mailbox Sent {
>>     special_use = \Sent
>>   }
>>   mailbox "Sent items" {
>>     special_use = \Sent
>>   }
>>   mailbox Trash {
>>     special_use = \Trash
>>   }
>>   mailbox inbox {
>>     auto = subscribe
>>   }
>>   prefix =   separator = /
>>   type = private
>> }
>> passdb {
>>   args = /etc/dovecot/deny.imap
>>   deny = yes
>>   driver = passwd-file
>> }
>> passdb {
>>   args = /etc/dovecot/master-users
>>   driver = passwd-file
>>   master = yes
>> }
>> passdb {
>>   args = /etc/dovecot/dovecot-ldap.conf.ext
>>   driver = ldap
>>   result_failure = return-fail
>> }
>> plugin {
>>   acl = vfile
>>   acl_shared_dict = file:/var/lib/dovecot/db/shared-mailboxes.db
>>   mail_log_events = delete undelete expunge copy mailbox_delete 
>> mailbox_rename append
>>   mail_log_fields = uid box msgid from subject
>>   quota = maildir
>>   quota_rule = ?:storage=5G
>>   quota_rule2 = Trash:storage=+100M
>>   quota_warning = storage=97%% quota-warning 97 %u
>>   quota_warning2 = storage=95%% quota-warning 95 %u
>>   quota_warning3 = storage=90%% quota-warning 90 %u
>>   quota_warning4 = storage=85%% quota-warning 85 %u
>>   quota_warning5 = storage=80%% quota-warning 80 %u
>>   quota_warning6 = -storage=100%% quota-warning below %u
>>   sieve = ~/.dovecot.sieve
>>   sieve_default = /var/lib/dovecot/default.sieve
>>   sieve_dir = ~/sieve
>> }
>> protocols = imap lmtp sieve
>> service auth {
>>   unix_listener /var/spool/postfix/private/auth {
>>     mode = 0666
>>   }
>>   unix_listener auth-userdb {
>>     group = vmail
>>     mode = 0666
>>     user = vmail
>>   }
>> }
>> service imap-login {
>>   process_limit = 500
>>   process_min_avail = 2
>> }
>> service quota-warning {
>>   executable = script /usr/local/bin/quota-warning.sh
>>   unix_listener quota-warning {
>>     user = vmail
>>   }
>>   user = dovecot
>> }
>> service stats {
>>   unix_listener stats-reader {
>>     group = vmail
>>     mode = 0660
>>     user = vmail
>>   }
>>   unix_listener stats-writer {
>>     group = vmail
>>     mode = 0660
>>     user = vmail
>>   }
>> }
>> shutdown_clients = no
>> ssl = required
>> ssl_cert = </etc/ssl/letsencrypt/fullchain.pem
>> ssl_cipher_list = 
>> ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 
>>
>> ssl_dh = # hidden, use -P to show it
>> ssl_key = # hidden, use -P to show it
>> ssl_min_protocol = TLSv1.2
>> userdb {
>>   args = uid=vmail gid=vmail home=/var/vmail/%n allow_all_users=yes
>>   driver = static
>> }
>> userdb {
>>   args = /etc/dovecot/dovecot-ldap.conf.ext
>>   driver = ldap
>> }
>> verbose_proctitle = yes
>> protocol lda {
>>   mail_plugins = acl lazy_expunge zlib quota mail_log notify sieve quota
>> }
>> protocol imap {
>>   imap_max_line_length = 2 M
>>   mail_max_userip_connections = 40
>>   mail_plugins = acl lazy_expunge zlib quota mail_log notify 
>> imap_quota imap_acl
>> }
> 


More information about the dovecot mailing list