列出用户在 Cyrus IMAP 中有权访问的邮箱?

列出用户在 Cyrus IMAP 中有权访问的邮箱?

我想知道是否有办法通过 cyradm(或其他方式)列出用户有权访问的所有邮箱。可以运行lam user.%并解析输出,但我认为这很糟糕 :)

答案1

在回答我自己的问题后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";
        }
}

相关内容