Codierung der Emails (German / Deutsch)
Hallo,
als ich gestern die Anfrage von Magma bearbeitet habe, ist mir aufgefallen, dass die Mails unterschiedliche codiert werden vom Forum.
Um das Problem von Magma nachzuvollziehen, habe ich einen Testuser angelegt mit einer GMX-Adresse (also einer Adresse, die nicht zu meinem Provider gehört). Die Bestätigungsmail vom Forum, dass sich ein neuer Nutzer angelegt hat, war UTF-8 codiert.
Anschließend habe ich als Testuser eine Mail an einen anderen Account geschickt. Diese Mail war US-ASCII codiert. Mir fiel dies auf, da ich in meinem Forum Sonderzeichen (ein ·) im Namen habe, das einmal korrekt dargestellt wurde (UTF-8) und einmal mit ?? (US-ASCII). Die Ursache liegt in der Funktion get_mail_encoding. Diese prüft, ob die Mail UTF-8 Zeichen enthält oder eben nicht und gibt dann die Codierung vor, mit die Mail codiert wird. In der my_mail-Funktion sieht der Aufruf wie folgt aus:
if($from=='') $mail_charset = get_mail_encoding($subject.$message.$settings['forum_name'].$settings['forum_email']); else $mail_charset = get_mail_encoding($subject.$message.$from);
In der Variable $from
steht nicht der Absender der Mail, dies ist stets die Forenadresse, sondern die Adresse für den Reply-to
-Part. Diese Variable ist bei der Bestätigungsmail leer aber belegt im Falle der Kontaktaufnahme zu einem anderen Forenteilnehmer.
Frage, welchen Sinn hat die Funktion get_mail_encoding
und benötigen wir diese überhaupt? Wenn diese Funktion tatsächlich in der jetzigen Form sinnvoll ist, dann sollte der Aufruf in der my_mail
-Funktion besser so aussehen - und zwar immer:
$mail_charset = get_mail_encoding($subject.$message.$settings['forum_name'].$settings['forum_email'].$from);
da der Name des Forums und dessen Adresse _immer_ Teil der Mail sind.
Was denkt Ihr?
Viele Grüße
Micha
--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences