Gustav Gans: utf-8 Mails mit php versenden

Beitrag lesen

So, nachdem ich jetzt seit Stunden herumbropiere, habe ich _diesen_ Code als funktionierendes Ergebnis:

  
$empfaenger="other@example.com";  
$betreff="Bitte bestätigen Sie Ihre Registrierung";  
$text="Hallo !\r\rSie haben sich gerade bei uns registriert. Österreich ist frei.";  
$header.="MIME-Version: 1.0\n";  
$header.="Content-type: text/plain; charset=utf-8\n";  
$header.="From: Max Mustermann <mustermann@example.com>\n";  
mail($empfaenger,utf8_decode($betreff),$text,$header, "-fcontact@example.com");  

Ich bekomme die Mail dann genau so, wie ich möchte. Der Mailinhalt wird korrekt dargestellt (durch das Content-type: text/plain; charset=utf-8\n) und die Betreffzeile benfalls (durch das utf8_decode($betreff)).

Ich verstehe nur eines nicht. Laut der von dedlfix empfohlenen Seite _muss_ bzw. _soll_ man auch eine Content-Transfer-Encoding Angabe machen. Wenn ich den obigen Code jetzt um diese Angabe erweitere,

  
$empfaenger="other@example.com";  
$betreff="Bitte bestätigen Sie Ihre Registrierung";  
$text="Hallo !\r\rSie haben sich gerade bei uns registriert. Österreich ist frei.";  
$header.="MIME-Version: 1.0\n";  
$header.="Content-type: text/plain; charset=utf-8\n";  
$header.="Content-Transfer-Encoding: 8bit";  
$header.="From: Max Mustermann <mustermann@example.com>\n";  
mail($empfaenger,utf8_decode($betreff),$text,$header, "-fcontact@example.com");  

dann steht plötzlich bei der eingetroffenen Mail als Absender nicht mehr Max Mustermann und mustermann@example.com als Adresse, sondern einfach nur noch die mit dem " -f " angegebene Adresse contact@example.com.

Fragen:

1.) _Muss_ ich diese Content-Transfer-Encoding - Angabe machen? Oder ist es auch OK, wenn ich es weglasse?

2.) Wieso wird plötzlich die header-Angabe zum Absender ignoriert, wenn Content-Transfer-Encoding mit angegeben wird?

MfG

Gustav Gans