Cyrus::IMAP::Admin - Cyrus administrative interface Perl module
use Cyrus::IMAP::Admin;
my $client = Cyrus::IMAP::Admin->new('mailhost'[, $flags]);
$rc = $client->create('user.auser'[, $partition]);
$rc = $client->delete('user.auser');
$rc = $client->deleteacl('user.buser', 'user1', 'user2');
%acls = $client->listacl('user.buser');
@mailboxes = $client->list('*');
@mailboxes = $client->list('%', 'user.');
@mailboxes = $client->subscribed('*');
%quota = $client->quota($root);
($root, %quota) = $client->quotaroot($mailbox);
$rc = $client->rename($old, $new[, $partition]);
$rc = $client->setacl($mailbox, $user =E<gt> $acl[, ...]);
$rc = $client->setquota($mailbox, $resource =E<gt> $quota[, ...]);
$rc = $client->xfer($mailbox, $server[, $partition]);
This module is a Perl interface to Cyrus administrative functions. It is used to
implement Cyrus::IMAP::Admin::Shell (otherwise known as
cyradm and also
available for use in Perl administrative programs.
Many of the methods have a
cyradm-compatible name and a shorter name. The
shorter name is shown in the synopsis when it exists; the
cyradm-compatible name should be reasonably obvious.
In general, methods return undef or empty lists on error. In some cases a method
may return an empty list without an error (i.e. "list" of a
nonexistent hierarchy), so it may be necessary to check the error state
explicitly via the "error" method.
- new($server[, $flags])
- Instantiates a cyradm object. This is in fact a
Cyrus::IMAP object with a few additional methods, so all Cyrus::IMAP
methods are available if needed. (In particular, you will always want to
use the "authenticate" method.)
- error
- Return the last error that occurred, or undef if the last
operation was successful. This is in some cases (such as "list")
the only way to distinguish between a successful return of an empty list
and an error return.
Calling "error" does not reset the error state, so it is legal to
write:
@folders = $cyradm->list($spec);
print STDERR "Error: ", $cyradm->error if $cyradm->error;
- createmailbox($mailbox[[, $partition], \%opts])
- create($mailbox[, $partition])
- Create a new mailbox on the specified or default
partition.
- deletemailbox($mailbox)
- delete($mailbox)
- Delete a mailbox. As with cyradm, you will probably
need to add the c ACL for yourself to the mailbox with
"setaclmailbox" first.
- deleteaclmailbox($mailbox, $user[, ...])
- deleteacl($mailbox, $user[, ...])
- Delete one or more ACL from a mailbox.
- listaclmailbox($mailbox)
- listacl($mailbox)
- Returns a hash of mailbox ACLs, with each key being a Cyrus
user and the corresponding value being the ACL.
- listmailbox($pattern[[, $reference], \%opts])
- list($pattern[[, $reference], \%opts])
- List mailboxes matching the specified pattern, starting
from the specified reference. The result is a list; each element is an
array containing the mailbox name, attributes, and the separator. (This
interface may change.)
- listsubscribed($pattern[, $reference])
- subscribed($pattern[, $reference])
- Like "listmailbox" but only shows subscribed
mailboxes.
- listquota($root)
- quota($root)
- Returns a hash specifying the quota for the specified quota
root. Use "listquotaroot" to find the quota root for a
mailbox.
- listquotaroot($mailbox)
- quotaroot($mailbox)
- Returns a list, the first element is the quota root for the
mailbox and remaining elements are a hash specifying its quota.
- renamemailbox($from, $to[, $partition])
- rename($from, $to[, $partition])
- Renames the specified mailbox, optionally moving it to a
different partition.
- setaclmailbox($mailbox, $user => $acl[, ...])
- setacl($mailbox, $user => $acl[, ...])
- Set ACLs on a mailbox. The ACL may be one of the special
strings "none", "read" ("lrs"),
"post" ("lrsp"), "append"
("lrsip"), "write" ("lrswipkxte"),
"delete" ("lrxte"), or "all"
("lrswipkxte"), or any combinations of the ACL codes:
- l
- Lookup (mailbox is visible to LIST/LSUB, SUBSCRIBE
mailbox)
- r
- Read (SELECT/EXAMINE the mailbox, perform STATUS)
- s
- Seen (set/clear \SEEN flag via STORE, also set \SEEN flag
during
APPEND/COPY/FETCH BODY[...])
- w
- Write flags other than \SEEN and \DELETED
- i
- Insert (APPEND, COPY destination)
- p
- Post (send mail to mailbox)
- k
- Create mailbox (CREATE new sub-mailboxes, parent for new
mailbox in RENAME)
- x
- Delete mailbox (DELETE mailbox, old mailbox name in
RENAME)
- t
- Delete messages (set/clear \DELETED flag via STORE, also
set \DELETED
flag during APPEND/COPY)
- e
- Perform EXPUNGE and expunge as part of CLOSE
- a
- Administer (SETACL/DELETEACL/GETACL/LISTRIGHTS)
- setquota($mailbox, $resource, $quota[, ...])
- Set quotas on a mailbox. Note that Cyrus currently only
defines one resource, "STORAGE". As defined in RFC 2087, the
units are groups of 1024 octets (i.e. Kilobytes)
- xfermailbox($mailbox, $server[, $partition])
- xfer($mailbox, $server[, $partition])
- Transfers (relocates) the specified mailbox to a different
server.
Brandon S. Allbery,
[email protected]
Cyrus::IMAP Cyrus::IMAP::Shell
perl(1),
cyradm(1),
imapd(8).