Der Martin: Kyrillische Zeichen im Betreff

Beitrag lesen

Hallo,

Eigentlich funktionert es ganz gut. Per mail([MAIL],$Betreff,$s_msg, $header); wird eine Nachricht erzeugt, die dank $s_msg = nl2br(utf8_encode($s_msg)); richtig dargestellt wird.

erzeugst du absichtlich HTML-Mails? Ich würde das nicht wollen, ist aber Geschmackssache.
Und utf8_encode() sollte vollkommen überflüssig sein, wenn man seine Quellcodes sowieso konsequent in UTF-8 codiert.

Das trifft jedoch leider nicht auf den Betreff zu. Dort erhalte ich, wenn ich kyrillische Zeichen angebe immer das &#XXXX;-Format. Bislang habe ich das wie folgt gelöst:

$header  = 'MIME-Version: 1.0'."\r\n";

$header .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
$header .= 'Content-Transfer-Encoding: quoted_printable'."\r\n";
...
if(strlen($Betreff) == 0) {$Betreff = 'Anfrage von Website';}
else {$Betreff = utf8_encode($Betreff);}
...
mail([MAIL],$Betreff,$s_msg, $header);

  
Auch hier sollte utf8\_encode() überflüssig sein, wenn man's von Anfang an ordentlich macht.  
  
Allerdings müssen Headerzeilen in Mails sowieso anders codiert werden, wenn sie Zeichen außerhalb des ASCII-Bereichs enthalten. Das [PHP-Manual](http://www.php.net/manual/en/function.iconv-mime-encode.php) zeigt dort, wo die geeignete Funktion beschrieben ist, auch ein paar Beispiele, wie die korrekte Codierung dann aussieht.  
  
So long,  
 Martin  

-- 
Paradox ist, wenn der Innenminister sich äußert und der Außenminister sich erinnert.  
  
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(