Umlaute und Formatierung (Enter) in eMail-Formular korrekt übernehmen

altox-de

Erfahrenes Mitglied
Hallo zusammen,
eine kurze Frage,
doch zuerst der Formular-Code der Datei "sendscript.php":

PHP:
<?PHP
 
 $Fehlen = "";
 if (empty($Name)) {
    $Fehlen = $Fehlen."<LI>Ihr Name";
 } 
  if (empty($eMail)) {
    $Fehlen = $Fehlen."<LI>Ihre eMail-Adresse";
 }
  if (empty($Nachricht)) {
    $Fehlen = $Fehlen."<LI>Ihre Nachricht";
 } 
    
 if (!empty($Fehlen)) {
   echo "<font size=3 face=Arial>";
   echo "Bitte entschuldigen Sie, aber Ihre Nachricht wurde nicht versandt.<BR>";
   echo "Es fehlten n&auml;mlich folgende Angaben:<BR><BR>";
   echo "<B>$Fehlen</B><BR><BR>";
   echo "Bitte klicken Sie in Ihrem Internetbrowser auf Zur&uuml;ck versuchen Sie es erneut!<BR>";
   echo "Wichtig ist, dass Sie alle mit * gekenntzeichneten Felder ausfuellen!<BR><BR>Danke!</font>";
} else {
 
  $header = "MIME-Version: 1.0\n"; 
$header .= "Content-type: text/html; charset=iso-8859-1\n"; 
$header .= "From: $eMail\n";
$header .= "Cc: info@abc.de\n";
  
  $Body ="<html><body><font size=4 face=Arial><b>eMail / Anfrage</b><font size=3> <p> <u>Nachricht:</u><br> $Nachricht <p> <u>Daten:</u><br>Name: $Name <br> Adresse: $Adresse1, $Adresse2 <br> eMail: $eMail <br> Datum: ".date("d. m. (M) Y - H:i")." Uhr <br> IP-Adresse: $REMOTE_ADDR <p> Vielen Dank für Ihre Nachricht,<br>Ihr Team von abc.de</body></html>";
    mail("$eMail", "$Betreff", "$Body", $header );

  header ("location: http://www.abc.de/danke.php");

 }
    
?>


Der Text, den der User in diesenm Formularfeldern eingibt, kommt bei mir sehr seltsam verzerrt an: z.B:

nach langem Überlegen - für diese Lösung entschieden: Da das Logo zu groß ist, erscheinen nun die drei Köpfe. Viele Grüße (als Beispiel)

Auch Satzformatierungen wie Enter etc. funktionieren nicht.
Der Text wird einfach in einem Stück aneinander gehängt.

Was mache ich falsch? Wie kann ich den Code umschreiben,
dass Umlaute regulär und auch die Enters angezeigt werden?!
Danke schon jetzt für eure Hilfe!

Claudia
 
Zuletzt bearbeitet:
Welche Zeichenkodierung verwendest du denn im Formular? Vermutlich ist es UTF-8, also könntest du diese auch in der E-Mail verwenden.
 
Hier der Fomular-Code:

PHP:
<form action="sendscript.php" method="get" name="FormName">
															<table width="419" border="0" cellspacing="0" cellpadding="0" height="212">
																<tr height="23">
																	<td width="200" height="23"><font face="arial">Ihr Name:</font></td>
																	<td width="19" height="23">
																		<div align="center">
																			<font color="#ea0f1b">*</font></div>
																	</td>
																	<td width="200" height="23"><input type="text" name="Name" size="26" /></td>
																</tr>
																<tr height="23">
																	<td width="200" height="23"><font face="arial">Straße + Hausnummer:</font></td>
																	<td width="19" height="23">
																		<div align="center"></div>
																	</td>
																	<td width="200" height="23"><input type="text" name="Adresse1" size="26" /></td>
																</tr>
																<tr height="23">
																	<td width="200" height="23"><font face="arial">PLZ + Wohnort:</font></td>
																	<td width="19" height="23">
																		<div align="center"></div>
																	</td>
																	<td width="200" height="23"><input type="text" name="Adresse2" size="26" /></td>
																</tr>
																<tr height="23">
																	<td width="200" height="23"><font face="arial">Ihre eMail-Adresse:</font></td>
																	<td width="19" height="23">
																		<div align="center">
																			<font color="#ea0f1b">*</font></div>
																	</td>
																	<td width="200" height="23"><input type="text" name="eMail" size="26" /></td>
																</tr>
																<tr height="23">
																	<td width="200" height="23"><font face="arial">Ihr Betreff:</font></td>
																	<td width="19" height="23">
																		<div align="center">
																			<font color="#ea0f1b">*</font></div>
																	</td>
																	<td width="200" height="23"><input type="text" name="Betreff" size="26" /></td>
																</tr>
																<tr height="5">
																	<td colspan="3" width="419" height="5"></td>
																</tr>
																<tr height="76">
																	<td width="200" height="76"><font face="arial">Ihre Nachricht:<br />
																			<br />
																			<br />
																		</font><font size="4" face="arial"><br />
																		</font></td>
																	<td width="19" height="76">
																		<div align="center">
																			<font color="#ea0f1b">*<b><br />
																					<br />
																					<br />
																				</b></font><font size="1" color="#ea0f1b"><b><br />
																				</b></font></div>
																	</td>
																	<td width="200" height="76"><textarea name="Nachricht" rows="4" cols="20"></textarea></td>
																</tr>
																<tr height="5">
																	<td colspan="3" width="419" height="5"></td>
																</tr>
																<tr height="24">
																	<td width="200" height="24"><font face="arial">Danke!</font></td>
																	<td width="19" height="24"></td>
																	<td width="200" height="24"><input type="submit" name="submitButtonName" value="Senden" />  <input type="reset" value="Löschen" /></td>
																</tr>
															</table>
														</form>
 
Die Frage ist, welchen content-type du im HTML angegeben hast.

Zum Beispiel:

HTML:
<meta http-equiv="content-type" content="text/html;charset=iso-8859-2" />

Ist soetwas bei dir spezifiziert? Wenn ja, musst du die E-Mail auch dementsprechend auszeichnen.
 
Dann must du auch im E-Mail-Header das angeben:
also statt:
PHP:
$header .= "Content-type: text/html; charset=iso-8859-1\n";
PHP:
$header .= "Content-type: text/html; charset=UTF-8\n";
 
Hallo!
Klappt ja schon toll,
ABER die Enters (Zeilenümbrüche) werden immer noch nicht beachtet....
Also immer noch aneinandergeschrieben...
 
Wie oben schon beschrieben:
in der sendscript.php-Datei:

PHP:
$Body ="<html><body><font size=4 face=Arial><b>eMail / Anfrage</b><font size=3> <p> <u>Nachricht:</u><br> $Nachricht <p> <u>Daten:</u><br>Name: $Name <br> Adresse: $Adresse1, $Adresse2 <br> eMail: $eMail <br> Datum: ".date("d. m. (M) Y - H:i")." Uhr <br> IP-Adresse: $REMOTE_ADDR <p> Vielen Dank für Ihre Nachricht,<br>Ihr Team von abc.de</body></html>";
    mail("$eMail", "$Betreff", "$Body", $header );
 
Sorry, mein Fehler. Das hatte ich übersehen:

PHP:
$Body ="<html>\n
<body>\n
<font size=4 face=Arial><b>eMail / Anfrage</b>\n
<font size=3><p>\n
<u>Nachricht:</u><br> ".nl2br($Nachricht)." <p>\n
<u>Daten:</u>\n
<br>Name: $Name <br> \n
Adresse: $Adresse1, $Adresse2 <br> \n
eMail: $eMail <br> Datum: ".date("d. m. (M) Y - H:i")." Uhr <br> \n
IP-Adresse: $REMOTE_ADDR <p> \n

Vielen Dank für Ihre Nachricht,<br>Ihr Team von abc.de</body></html>";

Probier es einmal so.
 

Neue Beiträge

Zurück