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 = '[email protected]';
$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.
?>
PHP.mk документација
imap_deletemailbox
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
function.imap-deletemailbox.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
function.imap-deletemailbox.php
imap_deletemailbox
Референца за `function.imap-deletemailbox.php` со подобрена типографија и навигација.
imap_deletemailbox
(PHP 4, PHP 5, PHP 7, PHP 8)
imap_deletemailbox — Избриши сандаче
= NULL
Ги брише наведените mailbox.
Параметри
-
imap Еден IMAP\Connection instance.
mailbox-
Креира нов сандаче специфициран од imap_open() за повеќе информации
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјаваПроследувањето на недоверливи податоци на овој параметар е insecure, освен ако imap.enable_insecure_rsh е оневозможено.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.1.0 |
На imap параметарот очекува IMAP\Connection
инстанца сега; претходно, валидна imap resource се очекуваше.
|
Види Исто така
- imap_createmailbox() - Креирај нова пошта
- imap_renamemailbox() за повеќе информации. Имињата што содржат меѓународни знаци треба да бидат кодирани од
-
imap_open() - Отвори IMAP стрим до поштенска кутија за форматот на
mbox
Белешки од корисници 1 белешка
jab_creations на yahoo точка com ¶
пред 1 година