Start · Sprachen · PHP · Referenz · imap_rfc822_write_address

imap_rfc822_write_address

Funktion

Erzeugt aus Mailbox-Name, Hostname und persönlichem Namen eine RFC 822-konforme E-Mail-Adresse als String.

seit PHP 4.0.0 Kategorie: http

Signatur

imap_rfc822_write_address(string $mailbox, string $host, string $personal): string

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

Typ
string
Beschreibung
Gibt einen RFC 822-konformen Adress-String zurück, z. B. "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>
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
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>
"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.