Sven Rautenberg: Sendmail mit §_POST - Umlaute vermeiden

Beitrag lesen

Moin!

echo $begrüßung;

Content-Type: text/plain;charset=UTF-8
wo muss ich diese codezeile einfügen? wo wird der mailheader in obigem script zusammengesetzt!? bin ein php-idiot :-/

$strFrom       = '"SENDMAIL" <emailabsender>' . "\nContent-Type: text/plain;charset=UTF-8";

Hinzuzufügen ist noch, dass diese Content-Type-Angabe nur für den Body der Mail gilt, nicht jedoch für die Header. Doch dummerweise ist üblicherweise das Subject sowie Namensangaben von Empfänger oder Sender auch gerne von UTF-8-Datentum betroffen.

Es gibt für Header eine spezielle Codierungsmethode, damit das leider auf 7 Bit ausgelegte Mailsystem mit 8-Bit-Zeichen und schlimmerem zurechtkommt.

Wenn ein String für den Mailheader als korrektes UTF-8 vorliegt, hilft diese Funktion:

  function _encode_header($header)  
  {  
    return "=?utf-8?b?".base64_encode($header)."?=";  
  }

Wichtig: Der Headerbezeichner (wie "Subject:", "To:", "Cc:" etc.) darf nicht mit bearbeitet werden. Der muß im Klartext bleiben, damit die Mailserver erkennen, was da eigentlich codiert wird.

- Sven Rautenberg

--
"Love your nation - respect the others."