Start · Sprachen · PHP · Referenz · imap_create

imap_create

Funktion

Alias von <code>imap_createmailbox()</code> — erstellt einen neuen Mailbox-Ordner auf dem IMAP-Server.

seit PHP 4.0.0 Kategorie: http

Signatur

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

Beschreibung

imap_create() ist ein Alias der Funktion imap_createmailbox() und legt einen neuen Ordner (Mailbox) auf dem verbundenen IMAP-Server an. Der Name des neuen Ordners muss als vollständiger IMAP-Pfad inklusive des Server-Präfixes angegeben werden.

Die Funktion ist nützlich, wenn eine Anwendung dynamisch Ordnerstrukturen für Benutzer anlegen soll, z. B. für Archiv-Ordner, projektbezogene Ablagestrukturen oder automatisierte E-Mail-Sortierung. Der Ordnername muss im sogenannten Modified UTF-7-Format (UTF-7-IMAP) kodiert werden, wenn er Nicht-ASCII-Zeichen enthält.

Da imap_create() lediglich ein Alias ist, empfiehlt es sich, direkt imap_createmailbox() zu verwenden, da Aliasse in zukünftigen PHP-Versionen entfernt werden könnten. Die Funktion gibt true zurück, wenn der Ordner erfolgreich erstellt wurde, andernfalls false.

Der Mailbox-Parameter muss den vollen IMAP-Serverpfad enthalten, also z. B. {imap.example.com:143}NeuerOrdner. Ohne dieses Präfix schlägt die Erstellung fehl.

Parameter

Name Typ Default Beschreibung
$imap Pflicht IMAP\Connection Eine aktive IMAP-Verbindung, die zuvor mit imap_open() geöffnet wurde.
$mailbox Pflicht string Der vollständige Name der zu erstellenden Mailbox inklusive Server-Präfix, z. B. {imap.example.com:143}MeinOrdner. Sonderzeichen müssen im Modified-UTF-7-Format kodiert sein.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn die Mailbox erfolgreich erstellt wurde, andernfalls false. Bei einem Fehler wird zusätzlich eine Warnung ausgegeben.

Beispiele

Einen neuen IMAP-Ordner erstellen

<?php
// Verbindung zum IMAP-Server herstellen
$imap = imap_open('{imap.example.com:143}INBOX', 'benutzer@example.com', 'geheimesPasswort');

if (!$imap) {
    die('Verbindung fehlgeschlagen: ' . imap_last_error());
}

// Neuen Ordner 'Archiv' erstellen
$mailboxName = '{imap.example.com:143}Archiv';
$result = imap_create($imap, $mailboxName);

if ($result) {
    echo "Ordner 'Archiv' wurde erfolgreich erstellt.";
} else {
    echo "Fehler beim Erstellen des Ordners: " . imap_last_error();
}

imap_close($imap);
Ordner 'Archiv' wurde erfolgreich erstellt.

Unterordner innerhalb von INBOX anlegen

<?php
$imap = imap_open('{imap.example.com:143}INBOX', 'benutzer@example.com', 'geheimesPasswort');

if (!$imap) {
    die('Verbindung fehlgeschlagen: ' . imap_last_error());
}

// Unterordner 'INBOX.Projekt2024' erstellen
$unterordner = '{imap.example.com:143}INBOX.Projekt2024';
if (imap_create($imap, $unterordner)) {
    echo "Unterordner 'Projekt2024' unter INBOX wurde erstellt.";
} else {
    echo "Erstellung fehlgeschlagen: " . imap_last_error();
}

imap_close($imap);
Unterordner 'Projekt2024' unter INBOX wurde erstellt.

// Wichtig · Fallstricke

Alias-Warnung: imap_create() ist ein Alias von imap_createmailbox(). Da PHP-Aliasse in zukünftigen Versionen ohne Vorwarnung entfernt werden können, sollte stattdessen direkt imap_createmailbox() verwendet werden.

Zeichenkodierung: Ordnernamen mit Umlauten oder anderen Nicht-ASCII-Zeichen müssen im Modified UTF-7-Format kodiert werden. PHP bietet hierfür keine eingebaute Funktion; es können externe Bibliotheken wie mb_convert_encoding() mit entsprechender Konvertierung oder dedizierte IMAP-Bibliotheken verwendet werden.

Berechtigungen: Das verwendete IMAP-Konto benötigt ausreichende Rechte auf dem Server, um neue Ordner anlegen zu dürfen. Andernfalls schlägt die Erstellung fehl.

Ab PHP 8.1 liefert imap_open() ein IMAP\Connection-Objekt statt einer Ressource zurück.