• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

IMAP-Ordner mit cyrus automatisch abonnieren

Status
Für weitere Antworten geschlossen.

theme

Newbie
Hallo zusammen,

ich habe da mal eine Spezialfrage:
Kann man cyrus oder thunderbird so einrichten, dass bestimmte oder alle IMAP-Ordner für Benutzer automatisch abonniert werden? Also die Einstellungen als Admin für die Benutzer vorgeben, denn bei denen ist nur der Hauptordner abonniert. Ich würde auch sofort ein script schreiben, das das erledigt, aber ich weiß nicht mal genau, wo ich suchen muss. Bei cyradmin und in den prefs von thunderbird habe ich nicht herausfinden können, wo die Anzahl der abonnierten Ordner liegt, oder wo gespeichert wird, welche abonniert sind. Immerhin vermute ich, dass das das zentral gespeichert wird, weil sich die Einstellungen unter Thunderbird auch auf das Webinterface durchschlagen.
Also: Es muss doch wohl cyrus zuständig sein. Aber wie?
Hat das schon mal jemand gemacht? Erfahrungen?
Danke,

Frank
 
OP
T

theme

Newbie
Ok, hat etwas gedauert, aber ich habs.
Cyrus sieht von Haus aus diese Funktion nicht vor.
Mit ein bisschen Suchen habe ich herausgefunden, dass Cyrus die Subscription-Informationen in einer Datei namens benutzer.sub speichert, natürlich für jeden Benutzer separat. Diese Dateien befinden sich unter /var/lib/imap/user - nach Anfangsbuchstaben des Benutzernamens sortiert (bei SuSE 9.1).
Damit muss man nur noch die Bentzernamen des Systems auslesen und für jeden eine .sub -Datei mit den passenden Einträgen erstellen.
Letzteres erledigt z.B. folgendes Script - VORSICHT, nicht besonders lange getestet:
Code:
#!/bin/sh
#
# Legt automatische subscriptions fuer einen Benutzer an,
# der per Parameter uebergeben wird.
#
#
# Allgemeine Einstellungen
#
verzeichnis="/var/lib/imap/user/"
#
#
# Check auf richtigen Aufruf
#
if ! test "$1"; then
        echo
        echo Richte die Standard-Subsscriptions eines Benutzers ein.
        echo Parameter: Benutzername
        echo
        exit;
        fi;
#
# Zerlegung des Benutzer-Namens
#
benutzername=$1
ersterbuchstabe=${benutzername:0:1}
#
# Hier wird es langsam ernst
#
zielverzeichnis=$verzeichnis$ersterbuchstabe"/"
zieldatei=$zielverzeichnis$benutzername".sub"
#
# Datei anlegen, falls noch nicht vorhanden, wir wollen den Benutzern
# nicht unbedingt alles aufzwingen
# Falls die Datei leer ist, dann hat sich der Benutzer schon mal
# angemeldet, aber noch keinen Ordner abonniert -> auch aendern
#
if ! test -e $zieldatei || ! test -s $zieldatei;
        then
                echo "Lege Subscription-Datei an..."
                touch $zieldatei
                #
                # Subscriptions einrichten
                #
                echo "Trage Subscriptions ein..."
                echo "user."$benutzername"      " > $zieldatei
                echo "user."$benutzername".Entwuerfe    " >> $zieldatei
                echo "user."$benutzername".Gesendet     " >> $zieldatei
                echo "user."$benutzername".Spam " >> $zieldatei
                echo "user."$benutzername".Trash        " >> $zieldatei
                #
                # Rechte aendern
                #
                chown cyrus $zieldatei
                chgrp mail $zieldatei
                chmod 600 $zieldatei
        fi;
#
# Fertig, Scriptende
#
Ihr könnt es ja mal testen. Es geht wie immer sicher auch besser, aber so läuft es wenigstens.
Noch was am Ende: bei den Zeilen echo "user."$benutzername".Spam" " steht zwischen den letzten beiden Anführungszeichen ein Tab-Zeichen. Wahrscheinlich erkennt man das hier nicht, aber ich glaube, dass das wichtig ist.
Viel Spaß und viele Grüße
Frank
 
OP
T

theme

Newbie
Noch was:
Die Reihenfolge der Einträge in den .sub-Dateien muss unbedingt alphabetisch sein, sonst nimmt Cyrus darin keine Änderungen mehr vor - kann man als Admin natürlich auch wieder misbrauchen, sollte man aber nicht.
Ich hoffe, das war jetzt alles...
 
Status
Für weitere Antworten geschlossen.
Oben