Mail-Quotas (Ubuntu 18.04)

Aus Tutorials
Zur Navigation springen Zur Suche springen

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 check_policy_service 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