On Tue, 19 Sep 2006, Brenden Conte wrote:

Is there a way to remotely find what backend server a specific mailbox is on using the admin account? This includes both users mailboxes as well as shared mailboxes.

##########################
# Locate which backend a mailbox is on
##########################
sub locatemailbox {
        my ($server, $authuser, $authpw, $mailbox) = @_;
        my $location = "";

        use Mail::IMAPClient;

        my $imap = Mail::IMAPClient->new(
                                Server => $server,
                                User => $authuser,
                                Password => $authpw
                        );
        if (! $imap) {
                die("Cannot connect to mail server '$server' to locate mailbox - 
$!");
        }

        my @results = $imap->tag_and_run(qq/GETANNOTATION $mailbox "*" 
"value.shared"/);

        $imap->logout;

        foreach my $r (@results) {
                $r =~ s/\r//g;
                $r =~ s/\n//g;
                if ($r =~ /\/vendor\/cmu\/cyrus-imapd\/server" \("value.shared" 
"(.*)"\)$/) {
                        $location = $1;
                }
        }

        return $location;
}



        Andy
----
Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

Reply via email to