Надсилання електронних листів за допомогою PHP найкраще реалізовувати за допомогою потужних класів, таких як PHPMailer . Зручні функції обгортки дозволяють використовувати вміст в UTF-8, вбудовувати зображення та надсилати зашифровані вкладення лише за допомогою декількох рядків коду. Якщо ви хочете заощадити накладні витрати та використовувати функцію PHP mail () всупереч рекомендаціям, пізніше у вас виникнуть проблеми при використанні umlauts та UTF-8.
Після виклику функції за допомогою
mail(
"vieldav@gmx.de", // Empfänger
"ä ö ü ß", // Betreff
"ä ö ü ß", // Inhalt
"From: ä ö ü ß <david@vielhuber.de>" // Header (Absender)
);
у кодованому файлі UTF-8 вже призводить до проблем у вхідних: Outlook 2013 все ще люб’язний і відображає все правильно:
Але GMX не прощає відсутніх заголовків і показує погану тему, відправника та вміст:
Якщо ви надішлете правильні заголовки (наприклад, з base64_encode), ви отримаєте
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)
);
і нарешті, GMX також показує правильне подання: