Mailbox Quota

#1
Hallo zusammen,

ich habe folgendes Problem mit den Mail Quotas: Wenn ein Userquota größer als 2047 MB gesetzt wird, z.B. 2048 MB, dann erscheint in dem Quotafeld der Wert 2047,99999904... und in dem entsprechenden Datenbankfeld quota in der Tabelle mail_user steht der Wert (signed int) 2147483647. Dieses Feld kann keinen größeren Wert als besagten Wert annehmen, da der Wertebereich von signed int bei
-2147483648 - 2147483647 liegt.

Wenn ich das jetzt richtig interpretiere, bedeutet das ja, man kann keinen größeren Quota als knapp 2GB anlegen.

Quota ganz ausschalten mit -1 im Quotafeld wiederum gibt eine Fehlermeldung aus

Code:
[B][FONT=Verdana][B]ERROR[/B][/FONT][/B]

Invalid quota value. Allowed values are: 0 for  unlimited or numbers > 1
und der Wert von 0 sorgt zwar für ein Kommando der Art

Code:
02.03.2010-17:34 - DEBUG - Call function 'user_update' in plugin 'mail_plugin' raised by event 'mail_user_update'.
02.03.2010-17:34 - DEBUG - Updated Maildir quota: su -c 'maildirmake -q 0S /var/vmail/domain.tld/user.name' vmail
02.03.2010-17:34 - DEBUG - Call function 'update' in plugin 'maildrop_plugin' raised by event 'mail_user_update'.
was aber zur Folge hat, das in der Datei maildirsize im Benutzerordner der alte Wert von 2147483647 erhalten bleibt.

Wäre es möglich, den Typ des Datenbankfeldes quota in der Tabelle mail_user auf bigint zu ändern? Des weiteren sollte vielleicht die -1 als 'no quota' zugelassen werden, damit die Konsistenz in der Benutzung gewahrt bleibt.


Ansonsten, nach nunmehr 10 Wochen ispconfig3 als Multiserver Installation im Betrieb, habe ich nur gute Erfahrungen mit ispconfig gemacht. Kompliment an die Entwickler.


Gruß, Harvey
 
#3
Hallo Till,

danke für Deine Antwort. Ich werde das Feld manuell auf bigint setzen.

Aber mal so in den Raum gefragt: Warum gibt es die zwei verschiedenen Verfahrensweisen mit dem mailquota: bei dem client als 'groupquota' wird der Wert in MB in die DB geschrieben und beim mailuser in Byte. Wäre es nicht durchgängiger, beide Werte als MB-Werte in die DB zu schreiben und nur, wenn benötigt, in Bytes umzurechnen.

Das zweite Problem, das ich gefunden habe, ist folgendes:

Wenn ich eine 0 als unlimited bei einem Mailbox User eintrage und der Befehl

Code:
[SIZE=2]su -c 'maildirmake -q 0S /var/vmail/domain.tld/user.name' vmail
[/SIZE]
auf dem Server ausgeführt wird, passiert nicht. Die Datei maildirsize wird nicht angepasst/geändert, sondern behält ihre ursprünglichen Werte bei, wenn vorher ein Quota gesetzt war. Bei einem Wert größer 0 wird die Datei auch entsprechend angepasst. Zu sehen ist dieses Verhalten unter Debian Lenny. Diesen Befehl kannst Du auch manuell absetzen, um auf die Schnelle zu testet, was passiert. Wenn keine Datei maildirsize existiert, wird mit dem obigen Befehl auch keine Datei maildirsize angelegt.

An der Stelle sollte vielleicht die Datei maildirsize gelöscht werden, wenn der Quota-Wert auf 0 steht.

Grüße, harvey
 

Till

Administrator
#4
Aber mal so in den Raum gefragt: Warum gibt es die zwei verschiedenen Verfahrensweisen mit dem mailquota: bei dem client als 'groupquota' wird der Wert in MB in die DB geschrieben und beim mailuser in Byte. Wäre es nicht durchgängiger, beide Werte als MB-Werte in die DB zu schreiben und nur, wenn benötigt, in Bytes umzurechnen.
maildrop verwendet byte Werte und nicht Mb Werte und leist diese auch selbst aus der DB aus während die anderen Werte über ispconfig in MB verarbeitet werden. Man könnte das sicherlich auch vereinheitlichen und maildrop entsprechend anpassen, aber das lohnt den Aufwand nicht wirklich.

An der Stelle sollte vielleicht die Datei maildirsize gelöscht werden, wenn der Quota-Wert auf 0 steht.
Ist bereits in der 3.0.2 behoben (siehe bugtracker).
 

Werbung

Top