createfolders
createfolders (shown in Example A-2 ) is a Tcl script that was used in Chapter 9 to create empty Cyrus mailboxes. It takes bsd2cyrusââs output as input. bsd2cyrusââs output contains the username, the pathname to a Berkeley-style mail folder, and its mapping into the Cyrus namespace (i.e., the Cyrus mailbox name), but createfolders uses only the Cyrus mailbox name.
Example A-2. createfolders
#!/usr/local/bin/cyradm -file set inputfile [lindex $argv 0] eval cyradm connect cyr_conn localhost imap puts stdout "Connected to IMAP server. Authenticating..." if [catch {eval cyr_conn authenticate -pwcommand {{ set adminid "cyrus" set adminpw "xxxxxxxx" list $adminid $adminpw }} } result ] { puts stderr "$result (cleartext)" return -code error $result } else { puts "Authentication successful." } ## $inputfile is a text file containing username, path to ## Berkeley format folder, and corresponding Cyrus mailbox if [catch {open $inputfile r} fileId] { puts stderr "Error: cannot open $inputfile" } else { while {[gets $fileId line] >= 0} { ## The Cyrus mailbox is the second field in the input ## line (arrays are indexed starting with 0). set mailbox [lindex [split $line ":"] 1] if [catch {cyr_conn createmailbox $mailbox} result] { puts stderr $result } else { puts "Created mailbox $mailbox" } } }
Get Managing IMAP now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.