L'envoi d' e-mails avec PHP est mieux implémenté avec des classes puissantes telles que PHPMailer . Des fonctions d'encapsulation pratiques permettent d'utiliser le contenu UTF-8, d'intégrer des images et d'envoyer des pièces jointes cryptées avec seulement quelques lignes de code. Si vous voulez vous épargner la surcharge et utiliser la fonction PHP mail () contrairement à la recommandation, vous rencontrerez des problèmes lors de l'utilisation des trémas et UTF-8 au plus tard.
Après avoir appelé la fonction avec
mail(
"vieldav@gmx.de", // Empfänger
"ä ö ü ß", // Betreff
"ä ö ü ß", // Inhalt
"From: ä ö ü ß <david@vielhuber.de>" // Header (Absender)
);
dans un fichier encodé UTF-8 conduit déjà à des problèmes dans la boîte de réception: Outlook 2013 est toujours aimable et affiche tout correctement:
Mais GMX ne pardonne pas les en-têtes manquants et affiche un mauvais sujet, expéditeur et contenu:
Si vous envoyez les en-têtes corrects (par exemple avec base64_encode), vous obtenez
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)
);
et enfin, GMX montre également une représentation correcte: