Mail-Quotas (Ubuntu 18.04)
Noch in Bearbeitung
Konfiguration
Per-user quota
Dazu ist wichtig, dass in der Datei /etc/dovecot/conf.d/auth-sql.conf.ext
(siehe Dovecot#Benutzer_Authentifizierung) folgende Zeilen einkommentiert werden:
sudo vi /etc/dovecot/conf.d/auth-sql.conf.ext
userdb { driver = sql args = /etc/dovecot/dovecot-sql.conf.ext }
Und in der Datei /etc/dovecot/dovecot-sql.conf.ext
sudo vi /etc/dovecot/dovecot-sql.conf.ext
folgende Zeile hinzugefügt / angepasst wird:
user_query = SELECT concat('*:storage=', quota, 'M') AS quota_rule FROM mailbox WHERE local_part = '%n' AND domain = '%d'
10-mail.conf
In der Datei /etc/dovecot/conf.d/10-mail.conf folgene Zeilen erweitern:
sudo vi /etc/dovecot/conf.d/10-mail.conf
mail_plugins = $mail_plugins quota
20-imap.conf
In der Datei /etc/dovecot/conf.d/20-imap.conf folgene Zeilen erweitern:
sudo vi /etc/dovecot/conf.d/20-imap.conf
protocol imap { mail_plugins = $mail_plugins imap_quota }
90-quota.conf
In der Datei /etc/dovecot/dovecot.conf folgene Zeilen hinzufügen:
sudo vi /etc/dovecot/conf.d/90-quota.conf
## ## Quota limits ## plugin { quota = maildir:User quota quota_grace = 10%% }
Warnungen bei Überschreiten der Quote
90-quota.conf
In der Datei /etc/dovecot/dovecot.conf
sudo vi /etc/dovecot/conf.d/90-quota.conf
folgene Zeilen hinzufügen:
## ## Quota warnings ## plugin { quota_warning = storage=66%% quota-warning 66 %u quota_warning2 = storage=80%% quota-warning 80 %u quota_warning3 = storage=95%% quota-warning 95 %u } service quota-warning { executable = script /usr/local/bin/quota-warning.sh user = vmail unix_listener quota-warning { group = vmail mode = 0660 user = vmail } }
quota-warning.sh
Die Datei
sudo vi /usr/local/bin/quota-warning.sh
mit folgenden zeilen befüllen:
#!/bin/sh PERCENT=$1 USER=$2 ADMIN="admin@<domain>" FROM="postmaster@<domain>" msg="From: $FROM To: $USER Bcc: $ADMIN Subject: Quota-Warnung $PERCENT% Lieber Nutzer, das Postfach $USER ist derzeit zu $PERCENT% gefuellt. Bitte einige Mails loeschen. Herzlichen Dank Ihr Mail-Service Team." echo -e "$msg" | /usr/sbin/sendmail -t -f $FROM "$USER" exit 0
Ablehnung durch Postfix, wenn Postfach voll
Wenn die Mail bereits an Dovecot weitergegeben wurde, dann gilt die Mail als zugestellt und es muss nachträglich eine Fehlermeldung generiert werden. Um das zu vermeiden, kann man mit folgender Konfiguration Postfix die Möglichkeit geben, die Mail sofort vor der Weiterleitung abzulehnen.
91-quota-status.conf
Die Datei
sudo vi /etc/dovecot/conf.d/91-quota-status.conf
erstellen (ist momentan nicht vorbereitet) und mit folgenden Inhalt befüllen (Port frei wählbar):
service quota-status { executable = quota-status -p postfix inet_listener { address = 127.0.0.1 port = 12340 } client_limit = 1 } plugin { quota_status_success = DUNNO quota_status_nouser = DUNNO quota_status_overquota = "552 5.2.2 Mailbox is over quota / Mailbox ist voll" }
main.cf
In der Datei
sudo vi /etc/postfix/main.cf
bei smtpd_recipient_restrictions
vor allen anderen Optionen folgende Anweisung einfügen:
smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:12340, ..., ...
Testen
Zum Test warn_if_reject
in dieselbe Zeile direkt vor den check_policy_service<c/code> setzen. So werden nur Warnungen generiert, die Mails jedoch nicht abgelehnt.
Links
https://doc.dovecot.org/configuration_manual/quota_plugin/
https://wiki.dovecot.org/Quota/Configuration
https://www.debacher.de/wiki/Mail-Quotas_mit_Dovecot
https://dokuwiki.tachtler.net/doku.php?id=tachtler:dovecot_quotas
https://thomas-leister.de/mailserver-debian-stretch/
https://blog.sys4.de/dovecot-quota-mit-postfix-abfragen-de.html
Zurück zu Mailserver einrichten