Start · Sprachen · PHP · Referenz · imap_rename

imap_rename

Funktion

Alias von <code>imap_renamemailbox()</code> — benennt eine IMAP-Mailbox um.

seit PHP 4.0.0 Kategorie: http

Signatur

imap_rename(IMAP\Connection $imap, string $from, string $to): bool

Beschreibung

imap_rename() ist ein Alias der Funktion imap_renamemailbox() und benennt eine vorhandene Mailbox (Ordner) auf einem IMAP-Server um. Die Funktion erwartet eine aktive IMAP-Verbindung sowie den vollständigen alten und neuen Namen der Mailbox im IMAP-Format.

Der Mailbox-Name muss im Format {hostname}Ordnername angegeben werden, also inklusive des Server-Bezeichners in geschweiften Klammern, wie er auch beim Öffnen der Verbindung mit imap_open() verwendet wird. Ein einfaches Umbenennen von INBOX.Archiv in INBOX.AltesMail ist damit ebenso möglich wie das Verschieben von Ordnern durch Änderung der Hierarchie.

Da es sich um einen Alias handelt, verhält sich imap_rename() in jeder Hinsicht identisch zu imap_renamemailbox(). Es wird empfohlen, direkt imap_renamemailbox() zu verwenden, da Aliasse in zukünftigen PHP-Versionen möglicherweise entfernt werden könnten.

Die Funktion gibt true bei Erfolg zurück. Schlägt das Umbenennen fehl – etwa weil der Ordner nicht existiert oder keine ausreichenden Berechtigungen vorliegen – wird false zurückgegeben.

Parameter

Name Typ Default Beschreibung
$imap Pflicht IMAP\Connection Eine aktive IMAP-Verbindungsinstanz, die zuvor mit imap_open() geöffnet wurde.
$from Pflicht string Der vollständige aktuelle Name der Mailbox im IMAP-Format, z. B. {imap.example.com}INBOX.AlterName.
$to Pflicht string Der neue vollständige Name der Mailbox im IMAP-Format, z. B. {imap.example.com}INBOX.NeuerName.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn die Mailbox erfolgreich umbenannt wurde, andernfalls false.

Beispiele

Mailbox auf einem IMAP-Server umbenennen

<?php
$imap = imap_open('{imap.example.com:993/imap/ssl}', 'benutzer@example.com', 'geheim');

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

$server = '{imap.example.com:993/imap/ssl}';
$alterName = $server . 'INBOX.Entwuerfe_Alt';
$neuerName = $server . 'INBOX.Entwuerfe';

if (imap_rename($imap, $alterName, $neuerName)) {
    echo "Mailbox erfolgreich umbenannt.";
} else {
    echo "Fehler beim Umbenennen: " . imap_last_error();
}

imap_close($imap);
Mailbox erfolgreich umbenannt.

Ordner in eine andere Hierarchieebene verschieben

<?php
$imap = imap_open('{imap.example.com:993/imap/ssl}', 'benutzer@example.com', 'geheim');

if ($imap === false) {
    die('Verbindung fehlgeschlagen.');
}

$server = '{imap.example.com:993/imap/ssl}';

// Ordner von der obersten Ebene in INBOX verschieben
$erfolg = imap_rename($imap, $server . 'Projektordner', $server . 'INBOX.Projektordner');

echo $erfolg ? 'Verschoben.' : 'Fehler: ' . imap_last_error();

imap_close($imap);
Verschoben.

// Wichtig · Fallstricke

Alias-Hinweis: imap_rename() ist ein Alias von imap_renamemailbox(). Es wird empfohlen, stattdessen direkt imap_renamemailbox() zu verwenden, um Kompatibilitätsprobleme mit zukünftigen PHP-Versionen zu vermeiden.

Ab PHP 8.1: Der Parameter $imap erwartet eine Instanz von IMAP\Connection anstelle einer resource.

Das Umbenennen von INBOX selbst ist auf den meisten IMAP-Servern nicht erlaubt und führt zu einem Fehler. Stellen Sie sicher, dass der Benutzer ausreichende Rechte auf dem Server besitzt, bevor Sie Ordner umbenennen.