PHPCon Poland 2024

imap_deletemailbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_deletemailboxУдаляет почтовый ящик

Описание

imap_deletemailbox(IMAP\Connection $imap, string $mailbox): bool

Удаляет почтовый ящик mailbox.

Список параметров

imap

Экземпляр класса IMAP\Connection.

mailbox

Имя ящика. Более подробно читайте в описании imap_open()

Внимание

Передача в этот параметр непроверенных данных небезопасна, если включили директиву imap.enable_insecure_rsh.

Возвращаемые значения

Функция возвращает true в случае успешного выполнения или false, если возникла ошибка.

Список изменений

Версия Описание
8.1.0 Параметр imap теперь ожидает экземпляр класса IMAP\Connection; раньше параметр ждал ресурс (resource) imap.

Смотрите также

  • imap_createmailbox() - Создаёт новый почтовый ящик
  • imap_renamemailbox() - Переименовывает почтовый ящик
  • imap_open() - Открывает поток IMAP к почтовому ящику для формата mbox

add a note

User Contributed Notes 2 notes

up
1
kenstumpf<a>hotmail.com
20 years ago
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.
up
0
sanin at kset dot org
17 years ago
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');
?>
To Top