Signatur
Beschreibung
mailparse_rfc822_parse_addresses() analysiert einen E-Mail-Adress-String gemäß RFC 822 und zerlegt ihn in seine Bestandteile. Das ist besonders nützlich, wenn man To:-, From:- oder CC:-Header aus eingehenden E-Mails auswerten möchte, da diese mehrere Adressen in verschiedenen Formaten enthalten können (z. B. Name <adresse@example.com> oder einfach adresse@example.com).
Die Funktion gibt ein Array von assoziativen Arrays zurück, wobei jedes Element die Schlüssel display (Anzeigename), address (reine E-Mail-Adresse) und is_group (ob es sich um eine RFC-822-Gruppe handelt) enthält. Damit können Anzeigename und Adresse sauber getrennt und separat weiterverarbeitet werden.
Die Funktion gehört zur PECL-Erweiterung mailparse und muss daher explizit installiert sein. Sie eignet sich gut für die Vorverarbeitung von Adressfeldern in E-Mail-Parsern oder für Validierungsroutinen, die RFC-822-Konformität sicherstellen sollen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $addresses Pflicht | string | Ein RFC-822-konformer Adress-String, der eine oder mehrere E-Mail-Adressen enthält, z. B. "Max Mustermann <max@example.com>, info@example.org". |
Rückgabewert
Gibt ein indiziertes Array zurück, wobei jedes Element ein assoziatives Array mit folgenden Schlüsseln ist:
display– Der Anzeigename (Display Name), falls vorhanden, sonst ein leerer String.address– Die eigentliche E-Mail-Adresse.is_group–true, wenn es sich um eine RFC-822-Gruppenadresse handelt, ansonstenfalse.
Beispiele
Einzelne Adresse mit Anzeigename parsen
<?php
$result = mailparse_rfc822_parse_addresses('Max Mustermann <max@example.com>');
print_r($result);
Mehrere Adressen aus einem E-Mail-Header parsen
<?php
$header = 'Max Mustermann <max@example.com>, info@example.org, "Erika Muster" <erika@example.net>';
$addresses = mailparse_rfc822_parse_addresses($header);
foreach ($addresses as $addr) {
$display = $addr['display'] !== '' ? $addr['display'] : '(kein Name)';
echo "Name: {$display}, Adresse: {$addr['address']}\n";
}
// Wichtig · Fallstricke
Voraussetzung: Die Funktion ist Teil der PECL-Erweiterung mailparse, die separat installiert werden muss (pecl install mailparse). Sie ist nicht im PHP-Core enthalten.
Sicherheitshinweis: Die zurückgegebenen Adresswerte sollten vor einer Weiterverarbeitung (z. B. als Empfänger beim Versand von E-Mails) nochmals validiert werden, da nicht jede syntaktisch korrekte RFC-822-Adresse auch eine tatsächlich gültige und zustellbare Adresse darstellt. Verwende zusätzlich filter_var($addr, FILTER_VALIDATE_EMAIL).
Gruppenformat: RFC-822-Gruppen (z. B. gruppe: addr1, addr2;) werden erkannt und mit is_group = true markiert. Der Umgang damit muss in der eigenen Anwendungslogik explizit berücksichtigt werden.