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