# Mail-Funktion und Umlaute im Header



## bauchinj (16. Februar 2010)

Hallo!

Hab wieder mal ein Problem mit den Umlauten.... Also mein Mail ist utf-8 codiert, tut im header (glaub ich) nichts zur Sache. Heißt der Absender zum Beispiel "Günter Müllner" bekomm ich falsch kodierte Zeichen im Mailclient an!

habs versucht diesen String mit htmlentities, utf8_encode, utf8_decode, imap_8bit, ... zu kodieren, hilft aber alles nichts. Wie ist es möglich, Umlaute im Mail-Client richtig darzustellen?


```
$header  = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$header .= 'From: '.utf8_decode('Günter Müllner').' <'gm@gmx.net'>' . "\r\n";
```

So sieht also mein Header aus und so meine Mail-Aufruf:


```
mail($to,$subject,$message,$header);
```

Danke schon jetzt für eure Hilfe!


----------



## bauchinj (16. Februar 2010)

hier die Lösung:



```
$header  = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$header .= 'From: =?ISO-8895-15?Q?Günter Müllner?= <'gm@gmx.net'>' . "\r\n";
```

und ähnlich für den Betreff:


```
mail($to,"=?utf-8?Q?Betreff müt Ümläüten?=\r\n",$message,$header);
```

Viel Spaß!


----------



## Gumbo (16. Februar 2010)

Der Ansatz ist schon richtig, das Q deutet aber auf die Quoted-Printable-Kodierung hin, die es dann auch zu verwenden gilt:

```
$header  = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$header .= 'From: =?ISO-8895-15?Q?'.imap_8bit('Günter Müllner').'?= <user@example.com>' . "\r\n";
mail($to,"=?utf-8?Q?".imap_8bit('Betreff müt Ümläüten')."?=\r\n",$message,$header);
```
Dass du hier zwei unterschiedliche Zeichenkodierungen angibst (ISO 8859-15 und UTF-8) wird allerdings schiefgehen.


----------



## bauchinj (16. Februar 2010)

Sorry, natürlich 2 mal die gleiche Zeichenkodierung...


----------



## bauchinj (16. Februar 2010)

```
$header  = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$header .= 'From: =?ISO-8895-15?Q?'.imap_8bit('Günter Müllner').'?= <user@example.com>' . "\r\n";
mail($to,"=?utf-8?Q?".imap_8bit('Betreff müt Ümläüten')."?=\r\n",$message,$header);
```

SO funktionierts.... warum erhalte ich, wenn ich beim absender utf-8 angebe immer ein ? statt den ü's und im Betreff passts?


----------

