Start · Sprachen · PHP · Referenz · imap_alerts

imap_alerts

Funktion

Gibt alle seit dem letzten Aufruf aufgetretenen IMAP-Alarmmeldungen als Array zurück und leert dabei die interne Alarmliste.

seit PHP 4.0.0 Kategorie: http

Signatur

imap_alerts(): array|false

Beschreibung

imap_alerts() ruft alle IMAP-Alarmmeldungen ab, die seit dem letzten Aufruf dieser Funktion (oder seit Beginn der aktuellen PHP-Sitzung) aufgetreten sind. Alarmmeldungen werden vom IMAP-Server gesendet, um den Client über wichtige Ereignisse zu informieren, die keine Fehler darstellen, aber dennoch beachtet werden sollten – etwa Ablaufwarnungen von Passwörtern oder administrative Hinweise.

Die Funktion gibt ein Array von Zeichenketten zurück, wobei jeder Eintrag eine einzelne Alarmmeldung darstellt. Nach dem Aufruf wird die interne Liste der Alarmmeldungen geleert, sodass jede Meldung nur einmal abgerufen werden kann. Liegen keine Alarmmeldungen vor, wird false zurückgegeben.

Diese Funktion ist besonders nützlich im Zusammenspiel mit imap_errors(), um nach IMAP-Operationen einen vollständigen Überblick über alle Rückmeldungen des Servers zu erhalten. Beide Funktionen sollten in robustem Produktionscode regelmäßig aufgerufen werden, um sicherzustellen, dass keine wichtigen Servermeldungen übersehen werden.

Hinweis: imap_alerts() gehört zur IMAP-Erweiterung (ext/imap), die seit PHP 8.4 als PECL-Erweiterung ausgelagert wurde und separat installiert werden muss.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein indiziertes Array von Zeichenketten zurück, das alle seit dem letzten Aufruf aufgetretenen IMAP-Alarmmeldungen enthält. Sind keine Alarmmeldungen vorhanden, wird false zurückgegeben. Nach dem Aufruf wird die interne Alarmliste geleert.

Beispiele

Alarmmeldungen nach dem Verbindungsaufbau prüfen

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

if ($mailbox === false) {
    echo 'Verbindung fehlgeschlagen.' . PHP_EOL;
} else {
    echo 'Verbindung erfolgreich.' . PHP_EOL;
}

// Alarmmeldungen prüfen
$alarme = imap_alerts();
if ($alarme !== false) {
    echo 'IMAP-Alarmmeldungen:' . PHP_EOL;
    foreach ($alarme as $alarm) {
        echo '  [ALARM] ' . $alarm . PHP_EOL;
    }
} else {
    echo 'Keine Alarmmeldungen vorhanden.' . PHP_EOL;
}

if ($mailbox !== false) {
    imap_close($mailbox);
}
Verbindung erfolgreich. Keine Alarmmeldungen vorhanden.

Alarme und Fehler gemeinsam auswerten

<?php
function pruefeImapRueckmeldungen(): void
{
    $alarme = imap_alerts();
    $fehler = imap_errors();

    if ($alarme !== false) {
        foreach ($alarme as $alarm) {
            error_log('[IMAP ALARM] ' . $alarm);
        }
    }

    if ($fehler !== false) {
        foreach ($fehler as $fehler) {
            error_log('[IMAP FEHLER] ' . $fehler);
        }
    }
}

$mailbox = imap_open(
    '{imap.example.com:993/imap/ssl}INBOX',
    'benutzer@example.com',
    'geheimesPasswort'
);

// Nachrichten abrufen
if ($mailbox !== false) {
    $nachrichten = imap_search($mailbox, 'UNSEEN');
    pruefeImapRueckmeldungen();
    imap_close($mailbox);
}

pruefeImapRueckmeldungen(); // Letzte Alarme nach dem Schließen prüfen

// Wichtig · Fallstricke

Erweiterung ab PHP 8.4: Die IMAP-Erweiterung ist ab PHP 8.4 nicht mehr im PHP-Kern enthalten und muss als PECL-Paket (pecl install imap) separat installiert werden.

Einmaliger Abruf: Da imap_alerts() die interne Liste nach dem Aufruf leert, gehen Meldungen verloren, wenn die Funktion nicht aufgerufen wird. In kritischen Anwendungen sollte sie nach jeder IMAP-Operation aufgerufen werden, um keine wichtigen Servermeldungen zu verpassen.

Kein aktiver Verbindungsbezug: Die Funktion akzeptiert keine IMAP-Verbindungsressource als Parameter – sie arbeitet immer mit der globalen, prozessweiten Alarmliste der c-client-Bibliothek.