Att skicka e-post med PHP implementeras bäst med kraftfulla klasser som PHPMailer . Praktiska omslagsfunktioner gör det möjligt att använda UTF-8-innehåll, att bädda in bilder och skicka krypterade bilagor med bara några få kodrader. Om du vill spara kostnaden och, tvärtemot rekommendationen, använda PHP-funktionen mail () , kommer du att stöta på problem när du använder umlauts och UTF-8 senast.
Efter att ha ringt funktionen med
mail(
"vieldav@gmx.de", // Empfänger
"ä ö ü ß", // Betreff
"ä ö ü ß", // Inhalt
"From: ä ö ü ß <david@vielhuber.de>" // Header (Absender)
);
i en UTF-8-kodad fil leder redan till problem i inkorgen: Outlook 2013 är fortfarande nådig och visar allt korrekt:
Men GMX förlåter inte de saknade rubrikerna och visar ett dåligt ämne, avsändare och innehåll:
Om du skickar rätt rubriker (till exempel med base64_encode) får du det
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)
);
och slutligen visar GMX en korrekt representation: