Hello,
Trying to get the following quota notification script to work with Dovecot 2.3.21.1:
#!/bin/sh PERCENT=$1 USERNAME=$2 cat << EOF | /usr/lib/dovecot/dovecot-lda -d $USER -o "plugin/quota=count:User quota::noenforcing" From: postmaster@deeztek.com Subject: quota warning
Your mailbox is now $PERCENT% full. EOF
However running it produces the following error:
lda: Fatal: Unknown argument: plugin/quota=count:User quota::noenforcing
Below are my dovecot.conf settings:
# Pigeonhole version 0.5.21.1 (49005e73) # OS: Linux 5.4.0-192-generic x86_64 Debian 11.10 # Hostname: be9f67c4e17e debug_log_path = /dev/stdout dict { quotadict = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext } first_valid_uid = 1000 info_log_path = /dev/stdout last_valid_uid = 1000 listen = * log_path = /dev/stdout mail_debug = yes mail_gid = 1000 mail_home = /srv/mail/%d/%n mail_location = maildir:~/ mail_plugins = " quota zlib mail_crypt" mail_privileged_group = mail mail_uid = 1000 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 = yes location = mailbox Archive { auto = subscribe special_use = \Archive } mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Sent { auto = subscribe special_use = \Sent } mailbox Spam { auto = subscribe special_use = \Junk }
mailbox Trash { auto = subscribe special_use = \Trash } prefix = separator = / } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { mail_crypt_curve = prime256v1 mail_crypt_global_private_key = # hidden, use -P to show it mail_crypt_global_public_key = # hidden, use -P to show it mail_crypt_save_version = 2 quota = dict:User quota::proxy::quotadict quota_rule2 = Trash:storage=+10%% quota_warning = storage=100%% quota-warning +100 %u quota_warning2 = storage=95%% quota-warning +95 %u quota_warning3 = storage=80%% quota-warning +80 %u quota_warning4 = -storage=100%% quota-warning -100 %u sieve = /srv/mail/sieve/%u.sieve zlib_save = lz4 } protocols = imap pop3 submission sieve lmtp service auth { inet_listener auth-inet { port = 9587 } } service dict { unix_listener dict { group = vmail mode = 0660 user = vmail } user = root }
service imap-login { client_limit = 1000 process_min_avail = 1 service_count = 0 } service lmtp { inet_listener { port = 24 } } service managesieve-login { client_limit = 1000 process_min_avail = 1 service_count = 0 } service pop3-login { client_limit = 1000 process_min_avail = 1 service_count = 0 } service quota-warning { executable = script /scripts/quota-warning.sh unix_listener quota-warning { group = vmail mode = 0660 user = vmail } user = vmail } service submission-login { client_limit = 1000 process_min_avail = 1 service_count = 0 } ssl_cert = </certs/fullchain.pem ssl_cipher_list = ALL:!ADH:!LOW:!SSLv2:!SSLv3:!EXP:!aNULL:!eNULL:!3DES:!MD5:!PSK:!DSS:!RC4:!SEED:!IDEA:+HIGH:+MEDIUM ssl_key = # hidden, use -P to show it ssl_options = no_compression no_ticket ssl_prefer_server_ciphers = yes userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } verbose_proctitle = yes protocol imap { imap_metadata = yes mail_plugins = " quota zlib mail_crypt imap_quota zlib" } protocol lmtp { mail_plugins = quota sieve } protocol sieve { managesieve_logout_format = bytes=%i/%o } protocol pop3 { mail_plugins = " quota zlib mail_crypt mail_crypt" pop3_client_workarounds = outlook-no-nuls oe-ns-eoh pop3_uidl_format = %08Xu%08Xv }
Thanks