imap_createmailbox

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

imap_createmailboxСоздаёт новый почтовый ящик

Описание

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

Создаёт новый почтовый ящик, указанный в mailbox.

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

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

Имя почтового ящика. Более подробно смотрите imap_open(). Имена почтовых ящиков, содержащие интернациональные символы должны быть закодированы с помощью imap_utf7_encode().

Внимание

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

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

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

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

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

Примеры

Пример #1 Пример использования imap_createmailbox()

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
     or die("не получилось подключиться: " . imap_last_error());

$name1 = "phpnewbox";
$name2 = imap_utf7_encode("phpnewböx"); // phpnewb&w7Y-x

$newname = $name1;

echo "Новым именем будет '$name1'<br />\n";

// теперь создадим новый ящик "phptestbox" в вашем входящем каталоге,
// проверим его статус и удалим, чтобы вернуть ваш каталог к первоначальному
// состоянию

if (@imap_createmailbox($mbox, imap_utf7_encode("{imap.example.org}INBOX.$newname"))) {
    $status = @imap_status($mbox, "{imap.example.org}INBOX.$newname", SA_ALL);
    if ($status) {
        echo "ваш новый почтовый ящик называется '$name1' и имеет следующий статус:<br />\n";
        echo "Сообщений:           " . $status->messages    . "<br />\n";
        echo "Новых:                 " . $status->recent      . "<br />\n";
        echo "Непрочитанных:     " . $status->unseen      . "<br />\n";
        echo "Следующий UID:    " . $status->uidnext     . "<br />\n";
        echo "Корректность UID:" . $status->uidvalidity . "<br />\n";

        if (imap_renamemailbox($mbox, "{imap.example.org}INBOX.$newname", "{imap.example.org}INBOX.$name2")) {
            echo "переименуем новый ящик из '$name1' в '$name2'<br />\n";
            $newname = $name2;
        } else {
            echo "вызов imap_renamemailbox для нового ящика завершился ошибкой: " . imap_last_error() . "<br />\n";
        }
    } else {
        echo "вызов imap_status для нового ящика завершился ошибкой: " . imap_last_error() . "<br />\n";
    }

    if (@imap_deletemailbox($mbox, "{imap.example.org}INBOX.$newname")) {
        echo "новый почтовый ящик удалён для восстановления первоначального состояния<br />\n";
    } else {
        echo "вызов imap_deletemailbox на новом почтовом ящике завершился ошибкой: " . implode("<br />\n", imap_errors()) . "<br />\n";
    }

} else {
    echo "невозможно создать новый почтовый ящик: " . implode("<br />\n", imap_errors()) . "<br />\n";
}

imap_close($mbox);
?>

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