Ich habe ein Problem mit dem Versenden von E-Mails mit arabischem Inhalt mit der Mail-Funktion von PHP. Sagen wir, ich habe diese einfache arabische Zeichenfolge:
Ich habe verschiedene Möglichkeiten ausprobiert, die Kopfzeilen zu verwenden, aber der Inhalt der E-Mails endet immer noch mit etwas wie: X*X1X(X1Y X/
. Der E-Mail-Betreff wird jedoch korrekt kodiert, wenn ich arabische Zeichen verwende (dank base64_encode, siehe Funktion unten)
Hier ist eine der E-Mail-Funktionen, die ich ausprobiert habe
function sendSimpleMail($to,$from,$subject,$message) {
$headers = 'MIME-Version: 1.0' ."\r\n";
$headers .= 'To: '.$to ."\r\n";
$headers .= 'From: '.$from . "\r\n";
$headers .= 'Content-type: text/plain; charset=UTF-8; format=flowed' . "\r\n";
$headers .= 'Content-Transfer-Encoding: 8bit'."\r\n";
mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=',$message, $headers);
}
Haben Sie Vorschläge für alternative Möglichkeiten, dieses Ziel zu erreichen?
0 Stimmen
Ich verstehe das nicht. Wo liegt das Problem? Sie sagen, dass der Betreff der E-Mail korrekt kodiert ist... funktioniert das nicht auch für den Text?
0 Stimmen
Richtig, der E-Mail-Betreff kann durch die Verwendung von base64_encode korrekt angezeigt werden, aber Sie können nicht base64_encode($email_content) verwenden. Siehe die Beispielfunktion oben.