When deleting user account(s) from IMAP server don't forget to put full server name and port. Also need to be logged as IMAP admin and set ACL.
This worked for Cyrus:
<?php
//Credentials
$cyrusadmin_username="cyrus";
$cyrusadmin_password="cyruspassword";
$cyrus_serverip="fellowship.ring.net";
//User to delete
$username="frodoBaggins";
//Open the connection to IMAP server (Cyrus)
$mbox=imap_open("{".$serverip.":143}",$cyrusadmin_username, $cyrusadmin_password, OP_HALFOPEN)
or die('IMAP Could not connect because '.imap_last_error());
//Set ACL - Give rights to $cyrusadmin_username to delete mailbox
imap_setacl ($mbox, "user.".$username, $cyrusadmin_username, "lrswipcda")
or die('Could not setacl on mailbox');
//Delete mailbox
imap_deletemailbox($mbox,"{".$serverip.":143}user.".$username)
or die('Could not delete mailbox');
?>
imap_deletemailbox
(PHP 4, PHP 5)
imap_deletemailbox — 메일 박스를 지운다
Description
int imap_deletemailbox
( int $imap_stream
, string $mbox
)
imap_deletemailbox()함수는 특정 메일 박스를 지운다 (mbox 이름의 형식을 알려면 imap_open()함수를 보시오).
성공하면 TRUE를 실패하면 FALSE를 리턴한다.
See also imap_createmailbox(), imap_renamemailbox(), and imap_open() for the format of mbox .
imap_deletemailbox
sanin at kset dot org
10-Oct-2006 08:27
10-Oct-2006 08:27
kenstumpf<a>hotmail.com
08-Jan-2004 12:10
08-Jan-2004 12:10
Recent versions of the Cyrus imapd define mailbox ACLs as follows:
c (create)
The user may create new sub-mailboxes of the mailbox, or delete or rename the current mailbox.
d (delete)
The user may store the "Deleted" flag, and perform expunges.
This means to delete a mailbox, you will need to give the user you are connecting with via imap_open() "c" rights on the mailbox in order for imap_deletemailbox() to work. Setting "d" rights for yourself is not the same.
Check the documentation for your version of Cyrus imapd.
