Signatur
Beschreibung
imap_rfc822_write_address() kombiniert die einzelnen Bestandteile einer E-Mail-Adresse – Mailbox (Benutzername), Host (Domain) und optional einen Klartextnamen – zu einem vollständig nach RFC 822 formatierten Adress-String. Das Ergebnis kann direkt in E-Mail-Headern wie From:, To: oder Cc: verwendet werden.
Typischerweise wird diese Funktion eingesetzt, wenn E-Mail-Adressen aus Datenbank-Feldern oder Formularinputs zusammengesetzt werden müssen, um sicherzustellen, dass Sonderzeichen im persönlichen Namen (z. B. Kommata oder Umlaute) korrekt zitiert werden.
Wenn personal Sonderzeichen enthält, die in RFC-822-Adressen eine besondere Bedeutung haben, wird dieser Teil von der Funktion automatisch in doppelte Anführungszeichen gesetzt, sodass der Adress-String syntaktisch korrekt bleibt.
Die Funktion ist Teil der IMAP-Erweiterung (ext/imap), jedoch logisch unabhängig von einer aktiven IMAP-Verbindung und kann daher für allgemeine E-Mail-Verarbeitungsaufgaben verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $mailbox Pflicht | string | Der Benutzerteil der E-Mail-Adresse (der Teil vor dem @-Zeichen), z. B. "max.mustermann". |
|
| $host Pflicht | string | Der Hostname bzw. die Domain der E-Mail-Adresse (der Teil nach dem @-Zeichen), z. B. "example.com". |
|
| $personal Pflicht | string | Der Klartext-Name des Empfängers oder Absenders, z. B. "Max Mustermann". Wird als leerer String übergeben, entfällt der persönliche Name im Ergebnis. |
Rückgabewert
"Max Mustermann" <max.mustermann@example.com>. Enthält personal Sonderzeichen, werden diese entsprechend maskiert.Beispiele
Einfache Adresse mit persönlichem Namen
<?php
$address = imap_rfc822_write_address('max.mustermann', 'example.com', 'Max Mustermann');
echo $address;
// Ausgabe: Max Mustermann <max.mustermann@example.com>
Adresse ohne persönlichen Namen
<?php
$address = imap_rfc822_write_address('info', 'example.com', '');
echo $address;
// Ausgabe: info@example.com
Persönlicher Name mit Sonderzeichen (Komma)
<?php
// Nachname, Vorname — enthält ein Komma, muss gequotet werden
$address = imap_rfc822_write_address('m.mustermann', 'example.com', 'Mustermann, Max');
echo $address;
// Ausgabe: "Mustermann, Max" <m.mustermann@example.com>
// Wichtig · Fallstricke
Sicherheitshinweis: Auch wenn die Funktion Sonderzeichen im persönlichen Namen quotiert, sollten Eingaben aus nicht vertrauenswürdigen Quellen (z. B. Formulareingaben) zuvor validiert werden, um Header-Injection-Angriffe zu verhindern. Zeilenumbrüche (\r\n) im personal- oder mailbox-Parameter können E-Mail-Header manipulieren.
Die Funktion steht nur zur Verfügung, wenn die PHP-IMAP-Erweiterung installiert und aktiviert ist (--with-imap zur Kompilierzeit bzw. entsprechende PHP-Erweiterung geladen). Ab PHP 8.4 wird die ext/imap-Erweiterung als veraltet eingestuft – für neue Projekte sollten Alternativen wie Symfony Mailer oder die PEAR Mail-Bibliothek in Betracht gezogen werden.