IMAP::Admin(3)

πŸ“¦ version 3.12.4, in nixos 26.05, nixpkgs unstable

πŸ’– IMAP::Admin(3) β€” Cyrus::IMAP::Admin πŸ’–

okay bestie, welcome to the IMAP::Admin(3) page in the User Contributed Perl Documentation section! This one is all about Cyrus::IMAP::Admin, and it's giving classic Cyrus admin interface energy. ✨


🌸 NAME 🌸

Cyrus::IMAP::Admin β€” Cyrus administrative interface Perl module.


πŸ¦‹ SYNOPSIS πŸ¦‹

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]);

πŸŽ€ DESCRIPTION πŸŽ€

This module is a Perl interface to Cyrus administrative functions. It's used to implement Cyrus::IMAP::Admin::Shell (otherwise known as cyradm), and it's also available for use in Perl administrative programs. πŸ’…


πŸ‘‘ METHODS πŸ‘‘

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. πŸ›°οΈ


πŸ’œ AUTHOR πŸ’œ

Brandon S. Allbery, allbery@ece.cmu.edu 🫢


🌟 SEE ALSO 🌟


cute little sign-off: this page is from perl v5.42.3, dated 1980-01-01. byeee bestie, go admin those mailboxes! πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from