jueves, enero 29, 2009

scripts para borrar Mailbox en cyrus

Script: borrar_usuario.pl


#!/usr/bin/perl -w
## Borra Mailbox y usuarios de cyrus##

if ($#ARGV < 0) {
print "Uso: $0 username\n";
print "Borra Mailbox y usuarios de cyrus\n";
exit(-1);
}

my $username = $ARGV[0];
my $adminuser = "cyrus";
my $adminpw = "correo";
my $server = "localhost";

use Cyrus::IMAP::Admin;

# Conectando con Cyrus
$imap = Cyrus::IMAP::Admin->new($server)
|| die "Conexion rechazada con el servidor $server";

if (! $imap) {
die "Error al crear Objeto de conexion IMAP\n";
}

$imap->authenticate(-user => $adminuser,
-mechanism => "LOGIN",
-password => $adminpw,);

if ($imap->error) {
print "ERROR: " . $imap->error . "\n";
exit(-1);
}

print "Conexion satisfactoria con el servidor IMAP.\n";

# Verifica la existencia del mailbox
if (! $imap->listmailbox("user.$username")) {
print "ERROR: Mailbox 'user.$username' No existe \n";
exit(-1);
}

# Se obtenienen permisos de borrado sobre el mailbox
$imap->setaclmailbox("user.$username", "cyrus", "c");
if ($imap->error) {
print "ERROR: " . $imap->error . "\n";
exit(-1);
}

# Borrar el mailbox
$imap->deletemailbox("user.$username");
if ($imap->error) {
print "ERROR: " . $imap->error . "\n";
exit(-1);
}

system "saslpasswd2 -d $username";
print "Borrado satisfactorio del mailbox 'user.$username'\n";

No hay comentarios.: