Batch mailbox creation

Anders Norrbring lists at norrbring.se
Thu Sep 7 09:05:56 EDT 2006


Anthony Tibbs skrev:
> This isn't thoroughly tested or anything, but you could use something 
> like the following to generate a "command list" to be fed to cyradm, no?
> 
> It doesn't check for things like the user already having a Spam 
> mailboox, but... that wouldn't be hard to add.  Is "-c" appropriate to 
> prevent mailbox deletions by the user?
> 
> --- snip ~/mkmailboxes ---
> #!/bin/sh
> pushd /var/spool/imap/domain >/dev/nul
> for domLtr in *; do
>   pushd $domLtr >/dev/nul
>   for domain in *; do
>      pushd $domain >/dev/nul
> 
>      for usrltr in *; do
>         pushd $usrltr/user >/dev/nul
>         for email in *; do
>            echo cm user.$email@$domain.Spam
>            echo sam user.$email@$domain.Spam cyrus a
>            echo sam user.$email@$domain.Spam anyone p
>            echo sam user.$email@$domain.Spam $email@$domain -c
>            echo -n "\n"
>         done
>         popd >/dev/nul
>      done
> 
>      popd >/dev/nul
>   done
>   popd >/dev/nul
> done
> popd >/dev/nul
> --- Snip ---
> 
> 

Thanks Anthony.
Finally someone who could spare the sarcasm and actually push me in the 
right direction, it's much appreciated!

I made some trial and error, and came up with a modified version that 
will create the correct commands. My virtual domains are all converted 
to one local domain name, so I only need to list one dir, therefor I 
came up with this:

#!/bin/sh
pushd /var/spool/imap/user >/dev/nul
     for acct in *; do
         for email in *; do
            echo cm  user.$email.SPAM
            echo sam user.$email.SPAM cyrus all
            echo sam user.$email.SPAM anyone p
            echo sam user.$email.SPAM $email lrswipcd
         done
     done
popd >/dev/nul

The create command doesn't give any rights, so the parameters are a bit 
different than your suggestion.

I'll try to find a way to feed the result into cyradm as well. :)

-- 

Anders Norrbring
Norrbring Consulting


More information about the Info-cyrus mailing list