Signatur
Beschreibung
imap_mailboxmsginfo() gibt ein Objekt zurück, das verschiedene statistische Informationen über das aktuell geöffnete Postfach enthält, wie z. B. die Gesamtzahl der Nachrichten, die Anzahl neuer und ungelesener Nachrichten sowie die Gesamtgröße aller Nachrichten.
Das zurückgegebene stdClass-Objekt besitzt unter anderem die Eigenschaften Nmsgs (Gesamtzahl der Nachrichten), Recent (neu seit letzter Verbindung), Unread (ungelesen), Deleted (zum Löschen markiert) und Size (Gesamtgröße aller Nachrichten in Bytes).
Die Funktion ist nützlich, wenn man einen schnellen Überblick über den Zustand eines Postfachs braucht – z. B. um in einer E-Mail-Anwendung eine Zusammenfassung anzuzeigen oder um vorab zu prüfen, ob neue Nachrichten vorhanden sind, bevor man sie einzeln abruft.
Zu beachten ist, dass für die Nutzung von IMAP-Funktionen die PHP-Extension ext/imap aktiviert sein muss und seit PHP 8.1 die IMAP-Verbindung als Objekt vom Typ IMAP\Connection übergeben wird.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $imap Pflicht | IMAP\Connection | Eine aktive IMAP-Verbindung, die zuvor mit imap_open() geöffnet wurde. Seit PHP 8.1 ist dies eine Instanz von IMAP\Connection; zuvor war es eine Ressource. |
Rückgabewert
stdClass-Objekt mit folgenden Eigenschaften zurück: Date– Zeitpunkt des letzten AbrufsDriver– verwendeter Mail-Treiber (z. B. imap)Mailbox– Pfad des PostfachsNmsgs– Gesamtzahl der NachrichtenRecent– Anzahl neuer Nachrichten seit der letzten VerbindungUnread– Anzahl ungelesener NachrichtenDeleted– Anzahl zum Löschen markierter NachrichtenSize– Gesamtgröße aller Nachrichten in Bytes
false zurück.Beispiele
Postfach-Zusammenfassung ausgeben
<?php
// Verbindung zum IMAP-Server herstellen
$imap = imap_open(
'{imap.example.com:993/imap/ssl}INBOX',
'benutzer@example.com',
'geheimes-passwort'
);
if (!$imap) {
die('Verbindung fehlgeschlagen: ' . imap_last_error());
}
// Postfach-Informationen abrufen
$info = imap_mailboxmsginfo($imap);
echo 'Postfach: ' . $info->Mailbox . PHP_EOL;
echo 'Nachrichten gesamt: ' . $info->Nmsgs . PHP_EOL;
echo 'Neue Nachrichten: ' . $info->Recent . PHP_EOL;
echo 'Ungelesen: ' . $info->Unread . PHP_EOL;
echo 'Gelöscht: ' . $info->Deleted . PHP_EOL;
echo 'Gesamtgröße: ' . round($info->Size / 1024, 2) . ' KB' . PHP_EOL;
imap_close($imap);
Prüfen ob ungelesene Nachrichten vorhanden sind
<?php
$imap = imap_open(
'{imap.example.com:993/imap/ssl}INBOX',
'benutzer@example.com',
'geheimes-passwort'
);
if (!$imap) {
die('Verbindung fehlgeschlagen.');
}
$info = imap_mailboxmsginfo($imap);
if ($info->Unread > 0) {
echo 'Sie haben ' . $info->Unread . ' ungelesene Nachricht(en).' . PHP_EOL;
} else {
echo 'Keine ungelesenen Nachrichten.' . PHP_EOL;
}
imap_close($imap);
// Wichtig · Fallstricke
Extension erforderlich: Die Funktion setzt die PHP-Extension ext/imap voraus, die separat kompiliert oder installiert werden muss (--with-imap beim Build oder das entsprechende Paket, z. B. php-imap).
PHP 8.1: Ab PHP 8.1 wurde der bisherige Ressourcentyp für IMAP-Verbindungen durch die Klasse IMAP\Connection ersetzt. Code, der noch resource erwartet, muss entsprechend angepasst werden.
Deprecated: Die gesamte ext/imap-Extension wurde in PHP 8.4 als deprecated markiert und soll in einer zukünftigen PHP-Version entfernt werden. Für neue Projekte empfiehlt sich eine Bibliothek wie Horde_Imap_Client oder Symfony Mailer.
Fehlerbehandlung: Bei Verbindungsfehlern oder ungültiger Verbindung gibt die Funktion false zurück. Fehlerdetails können über imap_last_error() abgerufen werden.