View previous topic :: View next topic |
Author |
Message |
selim Apprentice
Joined: 14 Apr 2004 Posts: 219
|
Posted: Sun Jan 09, 2005 11:25 am Post subject: Automatisches anlegen von Mailboxen |
|
|
Kann mir jemand sagen ob es möglich ist vie script oder irgendwie anders die mailboxen eines cyrus imap, automatisch anlegen zu lassen.
Hintergrund ist der, daß ich aus einer Datenbank heraus die user auslesen und entsprechend eine Mailbox für jeden User anlegen möchte. |
|
Back to top |
|
|
xces Guru
Joined: 11 Oct 2002 Posts: 515
|
Posted: Sun Jan 09, 2005 12:10 pm Post subject: |
|
|
Mit einem Patch ist das möglich.
Schau dir ausserdem mal das Skript add-cyrus-user im contrib-Verzeichnis der Cyrus Doku an. |
|
Back to top |
|
|
selim Apprentice
Joined: 14 Apr 2004 Posts: 219
|
Posted: Thu Jan 20, 2005 5:25 pm Post subject: |
|
|
Ich hab's jetzt mit zwei Methoden versucht, die eine mit
#!/usr/bin/cyradm:
#!/usr/bin/cyradm -file
set inputfile [lindex $argv 0]
set quotalimit 300000
eval cyradm connect cyr_conn localhost 143
puts stdout "Verbindung zum IMAP-Server hergestellt. Authentifizierung..."
if [catch {eval cyr_conn authenticate -pwcommand {{
set hostname "localhost"
set adminid "xxxxxxxxx"
set adminpw "xxxxxxxxx"
list $adminid $adminpw
}} } result ] {
puts stderr "$result (Klartext)"
return -code error $result
} else {
puts "Authentifizierung erfolgreich."
}
if [catch {open $inputfile r} fileId] {
puts stderr "Fehler: $inputfile kann nicht geöffnet werden."
} else {
while {[gets $fileId user] >= 0} {
## INBOX anlegen
if [catch {cyr_conn createmailbox user.$user} result] {
puts stderr $result
} else {
puts " Mailbox user.$user angelegt."
}
## Standard-Mailboxen anlegen
if [catch {cyr_conn createmailbox user.$user.Postausgang}
result] {
puts stderr $result
} else {
puts " Mailbox user.$user.Postausgang angelegt."
}
## Quota einrichten
puts " user.$user wird die Quota $quotalimit zugewiesen..."
cyr_conn setquota "user.$user" "storage" "$quotalimit"
}
}
beschrieben im O'Reilly IMAP Handbuch
und #!/usr/bin/expect:
#!/usr/bin/expect -d
set user [lindex $argv 0]
set pw [lindex $argv 1]
set quota [lindex $argv 2]
puts $user
puts $pw
puts $quota
# Connect server localhost with user cyrus
spawn cyradm --user cyrus --auth login localhost
expect "IMAP Password:"
send "****\r"
sleep 30
# create
send "createmailbox user.$user"
send "setqota user.$user $quota"
bei der ersten Methoden bekomme ich immer die fehlermeldung
puts: no such file or directory
und bei der Zweiten läuft das script zwar komplett ab legt aber keine Mailbox an, wenn ich es manuel im cyradm überprüfe.
Vielleicht kann mir ja jemand von euch da weiterhelfen. |
|
Back to top |
|
|
tam Guru
Joined: 04 Mar 2003 Posts: 569
|
Posted: Thu Jan 20, 2005 8:27 pm Post subject: |
|
|
Ich habe in /etc/skel ein maildirmake gemacht, so habe ich beim Anlegen eines neuen useres immer gleich die mailbox Struktur. |
|
Back to top |
|
|
selim Apprentice
Joined: 14 Apr 2004 Posts: 219
|
Posted: Thu Jan 20, 2005 8:33 pm Post subject: |
|
|
tam wrote: | Ich habe in /etc/skel ein maildirmake gemacht, so habe ich beim Anlegen eines neuen useres immer gleich die mailbox Struktur. |
Und wie hilft mir das bei meinem expect bzw. cyradm problem? |
|
Back to top |
|
|
selim Apprentice
Joined: 14 Apr 2004 Posts: 219
|
Posted: Fri Jan 21, 2005 10:13 am Post subject: |
|
|
Vielleicht sonst noch eine Idee, wie sich mein problem mit dem oben beschriebenen script lösen läßt?
Ich steck wirklich fest, ich hab schon einige hinweise in google gefunden, daß es funktioniert, nur bei mir will es irgendwie nicht, und ein perlscript umzuschreiben bzw. zu schreiben ist meiner Meinung nach zu aufwendig, da sich das ganze mit expect oder cyrad scripten schneller und einfach lösen läßt. |
|
Back to top |
|
|
|