imap_deletemailbox

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

imap_deletemailboxEfface une boîte aux lettres

Description

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

Efface la boîte aux lettres spécifiée.

Liste de paramètres

imap

Une instance de IMAP\Connection.

mailbox

Le nom de la boîte aux lettres, voir la documentation sur la fonction imap_open() pour plus de détails

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version Description
8.1.0 La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une resource imap était attendue.

Voir aussi

add a note

User Contributed Notes 1 note

up
0
jab_creations at yahoo dot com
16 hours ago
I want to clarify a few technicalities to spare others the aggravation I had with imap_deletemailbox().

First off your first imap_open() should be to the folder to then imap_search() to ensure that the user isn't inadvertently deleting messages they're not yet aware of.

Secondly if !imap_search() you want to disconnect before executing imap_deletemailbox(). If you don't then you won't be able to avoid the following error:

PHP Request Shutdown: [CLOSED] IMAP connection broken (server response) (errflg=1)

That is because you just deleted the folder and the server doesn't know what to do with the connection so it triggers the error. So again, you want to delete the folder while you're connected to a different connection/folder combination instead.

A short example of how to cleanly delete a mail folder in PHP without triggering errors (presuming your connection configuration is correct):

<?php
$user
= 'user@domain.tld';
$pass = '[pass here]';
$mail_server = '{imap.example.com:993/ssl/imap}';
$mail_connection_folder = imap_open($mail_server.$folder_string, $user, $pass);

if (
$mail_connection_folder)
{
$mail_box_messages = imap_search($mail_connection_folder, 'ALL', SE_UID);

if (!
$mail_box_messages)
{
$result = imap_close($mail_connection_folder);
$mail_connection_folder = imap_open($mail_server, $user, $pass);
$result = imap_deletemailbox($mail_connection_folder, imap_utf7_encode($mail_server.$folder_string));
}
else {}
//messages in folder error.
}
else {}
//Failed connection error.
?>
To Top