L'invio di e-mail con PHP è implementato al meglio con classi potenti come PHPMailer . Comode funzioni wrapper consentono di utilizzare contenuto UTF-8, incorporare immagini e inviare allegati crittografati con poche righe di codice. Se vuoi risparmiarti l'overhead e, contrariamente a quanto consigliato, usa la funzione PHP mail () , ti imbatterai in problemi quando usi dieresi e UTF-8 al più tardi.
Dopo aver chiamato la funzione con
mail(
"vieldav@gmx.de", // Empfänger
"ä ö ü ß", // Betreff
"ä ö ü ß", // Inhalt
"From: ä ö ü ß <david@vielhuber.de>" // Header (Absender)
);
in un file codificato UTF-8 porta già a problemi nella posta in arrivo: Outlook 2013 è ancora grazioso e visualizza tutto correttamente:
Ma GMX non perdona le intestazioni mancanti e mostra un cattivo oggetto, mittente e contenuto:
Se invii le intestazioni corrette (ad esempio con base64_encode), ottieni
mail(
"vieldav@gmx.de", // Empfänger
"=?UTF-8?B?".base64_encode("ä ö ü ß")."?=", // Betreff
"ä ö ü ß", // Inhalt
"Content-type: text/plain; charset=utf-8\r\n"
."From: =?UTF-8?B?".base64_encode("ä ö ü ß")."?=<david@vielhuber.de>" // Header (Absender)
);
e infine GMX mostra una corretta rappresentazione: