PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : IMap Speicherplatz anzeige



brauni
10.11.04, 17:54
Hallo !

Wie kann ich alle IMAP Postfächer in einer website so auflisten lassen, dass verbrauchter und freier Speicherplatz aller User aufgelistet werden.

Am besten noch so eine kleine Statistik mit "xxxx Mails auf Server" und Speicherplatzverbrauch aller User.

Natürlich alles für alle Einsehbar.

Hat da jemand Ideen ? Oder kennt jemand ein Script ?

Benutze Cyrus Imap.

Roger Wilco
10.11.04, 18:11
Wie kann ich alle IMAP Postfächer in einer website so auflisten lassen, dass verbrauchter und freier Speicherplatz aller User aufgelistet werden.
In PHP würde es z. B. mit der Funktion imap_get_quota (http://de.php.net/manual/en/function.imap-get-quota.php) gehen. Du musst die Funktion einfach nur für alle Benutzer aufrufen.


Am besten noch so eine kleine Statistik mit "xxxx Mails auf Server" und Speicherplatzverbrauch aller User.
Das könntest du bei Bedarf einfach aus dem Dateisystem auslesen. Die Anzahl der Mails sind die Anzahl der Dateien in /var/spool/imap (ohne cyrus.cache,
cyrus.header und cyrus.index) und der Platzverbrauch eben entsprechend dem Verzeichnis /var/spool/imap (ohne die genannten Dateien).

brauni
11.11.04, 20:30
leider hab ich da ein kleines Problem:

Follgende Fehlermeldung wird angezeigt:


Warning: imap_open(): Couldn't open stream {localhost} in /Data/hosting/htdocs/home.php on line 2
can't connect: Can not authenticate to IMAP server: user not found

Der Server funktioniert einwandfrei und ist gestartet.
Es gibt keinerlei Probleme beim Login.

Benutzername und Passwort sind überall im script 100%ig richtig.

Keine Verbindung zum IMAP Server ??? - Addy (localhost) stimmt auch.

Hat jeamand ne Idee ?

Hier noch der Quelltext:


<?php
$mbox = imap_open("{your.imap.host}", "mailadmin", "password", OP_HALFOPEN)
or die("can't connect: " . imap_last_error());

$quota_value = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_value)) {
echo "Usage level is: " . $quota_value['usage'];
echo "Limit level is: " . $quota_value['limit'];
}

imap_close($mbox);
?>

brauni
13.11.04, 21:26
Kennt niemand eine Antwort auf mein Problem ? Oder vielleicht ein kleiner Hinweis / Tip ?

mamue
14.11.04, 13:03
Du kannst cyradm die Kommandos zum Auflisten der quota auf der Kommandozeile übergeben. Die Eingabe lässt sich natürlich auch umleiten. Also könntest Du das im Prinzip in etwa wie folgt machen:


for i in ls -1 /home
do
echo "lq user.$i" >> cyrus_commands
done
cyradm -u cyrus localhost < cyrus_commands

So in der Art lege ich die Mailboxen an, wenn es mal ein paar mehr auf einmal sind.

HTH
mamue