web-dev-qa-db-ja.com

Cyrus IMAPでユーザーがアクセスできるメールボックスを一覧表示しますか?

ユーザーがcyradm(または他の手段)を介してアクセスできるすべてのメールボックスを一覧表示する方法があるのだろうか。 lam user.%を実行して出力を解析することもできますが、それは最悪だと思います:)

4
zhenech

IMAP::Admin

#!/usr/bin/Perl

use IMAP::Admin;

$imap = IMAP::Admin->new('Server' => 'localhost',
                           'Login' => 'cyrus',
                           'Password' => 'cyrus',
                           );

my $finduser = "root"; # the user you search for

my @mailboxes = $imap->list("user.%");
foreach my $mailbox (@mailboxes) {
        my %list = $imap->get_acl($mailbox);
        if (defined($list{$finduser})) {
                print $mailbox."\n";
        }
}
1
zhenech