Hallihallo,
danke für die Procmail-Lösung, ich wusste nicht das die beiden gleichzeitig auf dem System laufen können. Dachte procmail/maildrop (MDA) wär wie sendmail/postfix (MTA).
D.h. evtl. könnte das mal auf einen negativen Wert raus laufen und ich weiß nicht, wie der IMAP darauf reagieren wird. Spannend wäre es jedenfalls.
Die "maildirsize" wird von procmail nicht verändert, aber beim Abholen via POP dekrementiert. Es tritt also genau das ein, was du gesagt hast: die Summe wird negativ:
Beim nächsten Update (z.B. maildirmake -q 102400S ...) des Quotas wird das aber von maildrop (Version 2.0.2, aus dem courier-maildrop 0.53.3-5 Paket von Debian) korrigiert und ist wieder "0". Ich denke aber das die Klienten mit negativen Quotas umgehen können, Thunderbird zumindest macht keine Probleme.
Um das ganze Problem noch etwas abzumildern habe stelle ich nun zuerst via deliverquota zu und erst wenn das fehlschlägt forc?iere ich das Ganze via procmail:
# procmail installieren (hier debian)
apt-get install procmail
# zu virtuellem benutzer wechseln
su vmail
# ~/.procmailrc anlegen mit folgendem inhalt:
Code:
:0
/home/vmail/$domain/$user/
# ~/.mailfilter editieren und relativ am anfang
Code:
PROCMAIL = "/usr/bin/procmail"
DELIVERQUOTA = "/usr/sbin/deliverquota"
...
if ( /^X-ProviderName-Msg:/:h )
{
# X-ProviderName-Header entfernen
xfilter "grep -v -e 'X-ProviderName.*'"
log "ProviderName Provider-Msg erkannt. Direkte Zustellung via <$DELIVERQUOTA> ..."
cc "|$DELIVERQUOTA $DEFAULT $MAILDIRQUOTA > /dev/null"
if ( $EXITCODE != 0 )
{
# vgl. courier-0.53.0/maildir/deliverquota.c und <man deliverquota>.
# Codes: 75 = EX_TEMPFAIL, 77 = EX_NOPERM
log "Postfach voll. Zustellung via <procmail> ..."
cc "|$PROCMAIL user=$RECIPIENT domain=$DOMAIN"
if ( $EXITCODE == 0 )
{
log "Providermail zugestellt."
EXITCODE = 0
exit
}
else
{
log "ERROR: Providermail konnte nicht via <procmail> zugestellt werden."
log " Standardzustellung wird versucht."
to $DEFAULT
}
}
else
{
log "Providermail zugestellt."
EXITCODE=0
exit
}
}
Und siehe da, es funktionert (obgleich das Beispiel hier wohl selten vorkommt):
Code:
ProviderName Provider-Msg erkannt. Direkte Zustellung via </usr/sbin/deliverquota> ...
Date: Thu Apr 26 18:10:43 2007
From: "Philipp H (ProviderName)" <philipph@ProviderName.de>
Subj: Hinweis: Ihr Postfach ist zu 129% gefüllt.
!Err: |/usr/sbin/deliverquota /home/vmail/ProviderName.de/cm 20971520S > / (1162)
Postfach voll. Zustellung via <procmail> ...
Date: Thu Apr 26 18:10:43 2007
From: "Philipp H (ProviderName)" <philipph@ProviderName.de>
Subj: Hinweis: Ihr Postfach ist zu 129% gefüllt.
File: |/usr/bin/procmail user=cm domain=ProviderName.de (1162)
Providermail zugestellt.
Viele Grüße,
Philipp