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でエンコードされたファイルでは、受信トレイにすでに問題が発生しています。Outlook2013は引き続き適切であり、すべてが正しく表示されます。:
しかし、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も正しい表現を示しています: