• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • imap_setacl()

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

    Sets the ACL for a given mailbox

    说明

    imap_setacl(resource $imap_stream,string $mailbox,string $id,string $rights): bool

    Sets the ACL for a giving mailbox.

    参数

    $imap_stream

    由imap_open()返回的 IMAP 流。

    $mailbox

    The mailbox name, see imap_open() for more information

    Warning

    Passing untrusted data to this parameter isinsecure, unlessimap.enable_insecure_rsh is disabled.

    $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

    注释

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

    参见

    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;
     }
    I noticed that using: 
    imap_setacl ($conn, $mbox, $userid, "")
    will act like:
    "deleteaclmailbox $mbox $userid" (remove the ACL on mailbox for userid).