Sonderzeichen im PHP Mailversand

Kumaro

Mitglied
Hi Leute ich mal mal wieder ein neues Problem ..

Für ein Kontaktformular werte ich eine die eingaben aus und verschicke es per Mail.

Das klappt auch alles soweit ganz gut jetzt hab ich das Problem das Sonderzeichen die eingegeben werden nicht sauber übermittelt , das sind dann also nur kryptische zeichen...

Ich hab schon im netz gesucht aber irgendwie finde ich nichts was funktioniert ich hoffe ihr helft mir weiter. Vielleicht könnt ihr mir sagen was ich ändern muss...

Hier der Code für den versand:


$nz = chr(13).chr(10);

$an = "kontakt@ga-town.de";

$from = "From: Kontaktformular-ga-town.de"."\n\r";

$datum = "Datum: " .date("j.n.Y").$nz;

$zeit = "Zeit: ".date("H:i").$nz;

$von = "Von: " .$name." <".$email.">".$nz;

$line = $nz."----------------------------------------".$nz;

$Browser= $_SERVER['HTTP_USER_AGENT']; // Browser ermitteln

$IP= $_SERVER['REMOTE_ADDR']; // IP Adresse ermitteln

$logfiles ="Browser : ".$Browser. " IP-Adresse : ".$IP.$nz;

$text = $datum.$zeit.$von.$line.$nachricht.$line.$nz.$logfiles;


// Inhalt überarbeiten um die Zeilenabstände zu erhalten

if ($text > NULL) $text = stripslashes($text)."\n\n";

$text = str_replace("\r\n","\n",$text);

$text ->CharSet = "utf-8";

// Mailheader erstellen

$header = "From: Kontaktformular-ga-town.de\r\n";

$header .= "Content-Type: text/plain; charset=iso-8859-15\r\n";

$header .= "Content-Transfer-Encoding: 7bit\r\n";

$header .= "X-Mailer: PHP/" . phpversion(). "\r\n";

$header .= "Importance: Normal\r\n";

//$headers .= "Content-Type: text/html; charset=UTF-8\n";

//$headers .= "Content-Transfer-Encoding: 8bit\n\n";

// Email senden, beende das Skript, wenn es Fehler gibt

if(!@mail($an,$betreff,$text,$header)) {

die("Mail konnte nicht gesendet werden! Bitte versuch es später erneut.");

}

Danke im voraus
 
Es liegt oft an falschen HEader-Einstellungen. Die Zeichen die du eingibst bei einem UNICODE wird niemals so in einem ISO-*** angezeigt. Informiere dich daher über Zeichensätze und wie man die beim Versenden bzw. im Formular beachtet.
Ein ganzes Script hier abzulegen und zu sagen: "mach mal" ist hier nicht erwünscht (Nettiquette)
 
Hi sorry wie "Mach mal" sollte das nicht klingen und so war es auch nicht gemeint.
Das Script dient jediglich um dazu damit ihr evtl. Fehler die ich gemacht habe aufdecken könnt... manchmal sieht man ja den wald vor lauter bäumen nicht ;)

Ja hab mir das schon mal angesehen aber noch irgendwie nichs gutes gefunden ... muss ich wohl noch mal gucken .. danke
 
Also ich habe grad in der Suche vom Browser nach UTF8 und ISO gesucht und das hier gefunden:

PHP:
$header .= "Content-Type: text/plain; charset=iso-8859-15\r\n";

Dort willst du das die E-Mail mit diesem Zeichensatz gelesen wird. Da werden dir aber manche Sonderzeichen aus UTF8 zum Beispiel fehlen. Stell einfach hier UTF-8 ein und bei deiner XHTML mit dem Formular auch utf-8:

http://de.selfhtml.org/html/kopfdaten/meta.htm#zeichenkodierung

Da sollten genug Sonderzeichen drin sein und auch so gut wie keine verloren gehen.
 
Hi super vielen dank :)...
Bei den zeichensätzen steig ich noch nicht so recht durch aber ich werds mir noch mal angucken.
Danke noch mal.
 
Zurück