Postfix-Zeichenkodierung?

Postfix-Zeichenkodierung?

Ich verwende Postfix als Mailserver. Ich habe das Ubuntu-Betriebssystem.

Dann verwende ich PHP zum Senden von E-Mails.

Das Problem besteht darin, dass keine meiner E-Mails von der Mailsoftware, die mein VPS-Anbieter verwendet, richtig verschlüsselt wird.

Ihrer Meinung nach liegt das Problem bei mir.

Lediglich das Namensfeld ist nicht richtig kodiert. In meinen E-Mails wird beispielsweise aus "Björn" "Björn".

Wenn ich jedoch das wiedergebe $name, wird "Björn" welches ist richtig.

Auch Gmail und Hotmail zeigen es korrekt an.

Das Seltsame ist, dass der „Text“ (die Nachricht selbst) richtig codiert ist.

Zum Versenden von Mails nutze ich folgendes:

$headers="MIME-Version: 1.0"."\n";
$headers.="Content-type: text/plain; charset=UTF-8"."\n";
$headers.="From: $name <$email>"."\n";

$name=  iconv(mb_detect_encoding($name), "UTF-8//IGNORE//TRANSLIT", $name);
//// I HAVE TRIED WITH AND WITHOUT THE LINE ABOVE, NO DIFFERENCE            

mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $text, $headers, '[email protected]'); 

Ich habe es auch mit und ohne die Iconv-Zeile versucht, ohne Erfolg.

Das Letzte, was mir einfällt, istPOSTFIX, könnte es dort eine Einstellung für die Zeichenkodierung geben? Weiß das jemand?

Antwort1

Der Nachrichtentext kann jeden beliebigen Zeichensatz haben, den Sie definieren (da Sie den Zeichensatz für die E-Mail im E-Mail-Header definieren (Inhaltstyp = UTF8), aber die Header (Betreff, Absendername, E-Mail) werden im Client definiert, der die E-Mail liest, Sie können das also nicht beeinflussen. Gmail verwendet standardmäßig UTF8, während andere Clients, die die E-Mails anzeigen, alles verwenden können, was sie möchten, und grundsätzlich werden nur ASCII-Zeichen überall vollständig unterstützt.

Bearbeiten: Der Nachrichtenkopf kann Zeichen außerhalb des US-ASCII-Formats enthalten, sofern diese MIME-kodiert sind ("=?charset?encoding?encoded text?=").

Antwort2

Ein Problem, das ich sehe, ist, dass Sie $nameauf UTF-8 konvertiert habennachEinbetten in $headers. Was also an Postfix gesendet wird, ist das, was vorher dort war. Sie sollten iconv()es und fügen die MIME-Kodierung hinzuVorfüge es hinzu in $headers.

verwandte Informationen