Dutch PHP Conference 2025 - Call For Papers

imap_setacl

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imap_setaclSets the ACL for a given mailbox

Опис

imap_setacl(
    IMAP\Connection $imap,
    string $mailbox,
    string $user_id,
    string $rights
): bool

Sets the ACL for a giving mailbox.

Параметри

imap

Примірник IMAP\Connection.

mailbox

The mailbox name, see imap_open() for more information

Увага

Передавати у цей параметр неперевірені дані небезпечно, якщо увімкнено imap.enable_insecure_rsh.

user_id

The user to give the rights to.

rights

The rights to give to the user. Passing an empty string will delete acl.

Значення, що повертаються

Повертає true у разі успіху або false в разі помилки.

Журнал змін

Версія Опис
8.1.0 Тепер параметр imap має бути примірником IMAP\Connection; раніше очікувався дійсний resource imap.

Примітки

This function is currently only available to users of the c-client2000 or greater library.

Прогляньте також

add a note

User Contributed Notes 2 notes

up
0
hartmut dot woehrle at hwds dot ch
8 years ago
After getting the ACL's from imap_getacl you want to set them for a user on any mailbox folder like this:

foreach ( $Folders as $key => $Maildir ) {
imap_setacl($domains , "user/john.doe/".$Maildir , $userid, "lrswipkxte");
}

You can use a form that translates the ACLs like the following (thanks to cyradm manual):

switch ($right) {
case "read" : $aclstring = "lrs";
break;
case "post" : $aclstring = "lrsp";
break;
case "append" : $aclstring = "lrsip";
break;
case "write" : $aclstring = "lrswipkxte";
break;
case "delete" : $aclstring = "lrxte";
break;
case "all" : $aclstring = "lrswipkxte";
break;
case "admin" : $aclstring = "lrswipkxtea";
break;
case "none" : $aclstring = "";
break;
}
up
0
panayotis at yellownetroad dot com
21 years ago
I noticed that using:
imap_setacl ($conn, $mbox, $userid, "")
will act like:
"deleteaclmailbox $mbox $userid" (remove the ACL on mailbox for userid).
To Top