ISPConfig 3 und Quotawarnungen unter Dovecot auf Ubuntu (12.04)

Hallo zusammen,

da ich gerne meine E-Mail Benutzer informieren möchte, wenn Ihr Postfach zu 85% und zu 90% gefüllt ist, habe ich mich mal rangesetzt und es dokumentiert.

Als erstes benötigen wir ein Script, welches wir wie folgt nennen:

/usr/local/bin/quota-warning.sh :
#!/bin/sh
#
# Should be run by the Local Delivery Agent
#
#set -x
SCRIPT_NAME="quota-warning.sh"
MAIL_TO=$2
MAIL_BCC="postmaster@<Deine Domäne>"
MAIL_FROM="postmaster@<Deine Domäne>"
MAIL_QUOTA_PERCENT=$1
MAIL_SUBJECT="Ihre Mailbox ist zu "$1"% voll!"
BIN_CAT="/bin/cat"
BIN_DATE="/bin/date"
BIN_HOSTNAME="/bin/hostname"
BIN_LOGGER="/usr/bin/logger"
BIN_MV="/bin/mv"
BIN_STAT="/usr/bin/stat"
#set -x
# set misc values
HOSTNAME="`${BIN_HOSTNAME}`"
# set mail value
MAIL_DATE="`${BIN_DATE} '+%a, %d %b %Y %T %z (%Z)'`"
MAIL_MESSAGE_ID="`${BIN_DATE} '+%Y%m%d%H%M%S'`@${HOSTNAME}"
#To: ${MAIL_TO}
# write out message
${BIN_CAT} << EOF | /usr/lib/dovecot/dovecot-lda -d $MAIL_TO -o "plugin/quota=maildir::noenforcing"
From: ${MAIL_FROM}
Subject: ${MAIL_SUBJECT}
Message-Id: <${MAIL_MESSAGE_ID}>
Date: ${MAIL_DATE}
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit

Info:
===
Hallo,
Dein Postfach ist zu ${MAIL_QUOTA_PERCENT}% gefüllt.

Bitte lösche E-Mails oder leere einmal Deinen Papierkorb.
Vielen Dank.

EOF

[ "$?" -gt 0 ] && ${BIN_LOGGER} -p mail.error -t "${SCRIPT_NAME}(${MAIL_TO})" "writing message failed" && exit 1

# log warning attempt

${BIN_LOGGER} -p mail.info -t "${SCRIPT_NAME}(${MAIL_TO}) ${MAIL_QUOTA_PERCENT}%" "delivered!"

exit 0

Jetzt speichern wir die Datei und vergeben die entsprechenden Rechte:

#:chown vmail:vmail /usr/local/bin/quota-warning.sh
#:chmod 750  /usr/local/bin/quota-warning.sh

Damit Dovecot das jetzt auch benutzt und ausführt benötigen wir ein paar Erweiterungen der /etc/dovecot/dovecot.conf:

plugin {

quota = dict:user::file:/var/vmail/%d/%n/.quotausage

sieve=/var/vmail/%d/%n/.sieve

quota_warning = storage=95%% quota-warning 95 %u

quota_warning2 = storage=80%% quota-warning 80 %u

}

# Example quota-warning service. The unix listener's permissions should be

# set in a way that mail processes can connect to it. Below example assumes

# that mail processes run as vmail user. If you use mode=0666, all system users

# can generate quota warnings to anyone.

service quota-warning {

executable = script /usr/local/bin/quota-warning.sh

#user = dovecot

user = vmail

unix_listener quota-warning {

user = vmail

}

}

Jetzt starten wir Dovecot durch:

service dovecot restart

Wird jetzt das Postfach über 85% gefüllt, bekommt der E-Mail Benutzer die Info, dass sein Postfach voll läuft und er aufräumen möchte.

Gruß

xabbu

0 Kommentar(e)

Zum Posten von Kommentaren bitte