diff --git a/roles/mailserver_dovecot/tasks/main.yml b/roles/mailserver_dovecot/tasks/main.yml index edd0b27..9bc36e1 100644 --- a/roles/mailserver_dovecot/tasks/main.yml +++ b/roles/mailserver_dovecot/tasks/main.yml @@ -127,6 +127,13 @@ line: '\1mail_plugins = $mail_plugins sieve' notify: Reload dovecot service +- name: Copy quota-warning script + become: true + ansible.builtin.template: + src: quota-warning.sh.j2 + dest: /usr/local/bin/quota-warning.sh + mode: "755" + - name: Copy 90-quota.conf become: true ansible.builtin.template: diff --git a/roles/mailserver_dovecot/templates/conf.d/90-quota.conf.j2 b/roles/mailserver_dovecot/templates/conf.d/90-quota.conf.j2 index d9cd55b..db6284a 100644 --- a/roles/mailserver_dovecot/templates/conf.d/90-quota.conf.j2 +++ b/roles/mailserver_dovecot/templates/conf.d/90-quota.conf.j2 @@ -15,3 +15,17 @@ service quota-status { user = postfix } } + +plugin { + quota_warning = storage=95%% quota-warning 95 %u + quota_warning2 = storage=80%% quota-warning 80 %u +} + +service quota-warning { + executable = script /usr/local/bin/quota-warning.sh + unix_listener quota-warning { + user = vmail + group = vmail + mode = 0660 + } +} diff --git a/roles/mailserver_dovecot/templates/quota-warning.sh.j2 b/roles/mailserver_dovecot/templates/quota-warning.sh.j2 new file mode 100644 index 0000000..e5dd674 --- /dev/null +++ b/roles/mailserver_dovecot/templates/quota-warning.sh.j2 @@ -0,0 +1,13 @@ +#!/bin/sh + +PERCENT=$1 +USER=$2 + +cat << EOF | /usr/lib/dovecot/dovecot-lda -d "$USER" -o "plugin/quota=maildir:User quota:noenforcing" +From: postmaster@{{ ansible_hostname }}.tunuifranken.info +Subject: Quota warning - $PERCENT% reached + +Your mailbox can only store a limited amount of emails. +Currently it is $PERCENT% full. If you reach 100% then +new emails cannot be stored. Thanks for your understanding. +EOF