#!/usr/bin/perl -w

# Author: <joao.alfredo@gmail.com>

use Cyrus::IMAP::Admin;

#
# CONFIGURATION PARAMS
#
my $cyrus_server = "localhost";
my $cyrus_user = "expresso-admin";
my $user = "expresso-admin";
my $mechanism = "login";

if (!$ARGV[0]) {
	die "Usage: $0 [expresso-admin password]\n";
} else {
	$cyrus_pass = "$ARGV[0]";
}

print "Criando usuario: $user. \n";
createMailbox($user,'INBOX');
createMailbox($user,'Enviados');
createMailbox($user,'Lixeira');
createMailbox($user,'Rascunhos');
sub createMailbox {

	my ($user, $subfolder) = @_;

	my $cyrus = Cyrus::IMAP::Admin->new($cyrus_server);
	$cyrus->authenticate($mechanism,'imap','',$cyrus_user,'0','10000',$cyrus_pass);

	if ($subfolder eq "INBOX") {
		$mailbox = "user.". $user;
	} else {

# Na linha abaixo, o valor entre " é o delimitador do imap. Geralmente "." ou "/".

		$mailbox = "user.". $user .".". $subfolder;
	} 

	$cyrus->create($mailbox);
	if ($cyrus->error) {
		print STDERR "Error: ", $mailbox," ", $cyrus->error, "\n";
	} else {
		print "Mailbox $mailbox criada com êxito.\n";
	}

}
