Signatur
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
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);
}
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.