最好使用功能强大的类(例如PHPMailer)来实现使用PHP发送电子邮件。 便捷的包装器功能使您可以使用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还显示了正确的表示形式: