Zeilenumbruch verhindern (textmail)

p41n

Grünschnabel
Hi Leute,

Habe folgendes Problem:

Über ein Kontaktformular wird mir eine Mail zu gesandt. Das funktioniert auch alles soweit prächtig. Nun wird aber der eigentliche Text, den der User über das Textfeld des Formulars eingibt, so sehr auseinander gerissen und unnötig in die Länge gezogen, dass es unübersichtlich wird. Er verdoppelt beim eigentlichen Text sozusagen den Zeilenumbruch.

Wie kann ich das denn verhindern?

Hier ein kleiner Auszug meines Codes:

PHP:
	$email = "From: " . $_SESSION['email'];
	$nachrichtfertig = "Sie haben folgende Nachricht erhalten:\n\n\n" .
				 "Absender: " . $_SESSION['name'] . "\n" . 
				 "Datum/Zeit: " . date("d.m.Y H:i:s"). "\n" .
				 "Adresse: " . $_SESSION['email']. "\n" .
				 "Betreff: " . $_SESSION['betreff']. "\n" .
				 "Wünsche Antwort: " . $_SESSION['antwort']. "\n\n" .
				 "Nachricht: \n\n" . $_SESSION['nachricht'];
	$versand = mail($empfaenger, "Kontakt über www.mysaar24.de: " . $_SESSION['betreff'], $nachrichtfertig, $email);
			if ($versand) {
			echo '<center><p>Vielen Dank für ihre E-Mail!</p><br>Hier gehts <a href="http://www.mysaar24.de/commkon.php">zurück</a></center>';
			
			// Sessionvariablen löschen
			unset($_SESSION['name']);
			unset($_SESSION['email']);
			unset($_SESSION['betreff']);
			unset($_SESSION['nachricht']);
			}

Hoffe, ihr könnt mir helfen!


Gruß p41n
 
Ich kann leider nur Mutmaßungen dazu anstellen, aber vielleicht liegt es daran, dass eine Zeile nur 70 Zeichen lang sein sollte und vielleicht wird der Nachrichtentext dann "falsch" behandelt...
Um den Text immer auf 70 Ziechen aufzuteilen kannst du

PHP:
$nachricht = wordwrap($nachricht, 70);

benutzen. Hab ich aber nicht ausprobiert und ich weiß nicht, ob die einzelnen Worte auch zerstückelt werden, also ob´s überhaupt schön aussieht...

Probiers mal aus und wenn´s nicht hilft, vielleicht weiß ja jemand anderes Rat.
 
Hat leider nicht geholfen. Damit ihr seht, wie das ganze ausschaut, hier mal eine Mail:

Sie haben folgende Nachricht erhalten:


Absender: Michael Schmidt
Datum/Zeit: 02.04.2008 14:42:38
Adresse: From: daniel_78@gmx.de
Betreff: Hilfe
Wünsche Antwort: Ja

Nachricht:

fsdfsdfsdfsdfsd

fsdfsdfsdfsdfsd

fsfsdfsdfsdfsdfsd

fsfsdfsdfsdfs

fsdfsdfsdfsdfs

fsdfsfsdfs

dfsdfsfsdfs

Wie ihr seht, ist der Header der Mail in Ordnung. Nur die eigentliche Nachricht wird unnötig aufgesplittet. Jeder Zeilenumbruch wird verdoppelt.. :confused:
 
Wie sieht denn $_SESSION['nachricht'] aus wenn du das ausgibst?

PHP:
echo $_SESSION['nachricht'];

(bzw. wie speicherst du das?)
 
Also im Formular selbst ist die Nachricht folgendermaßen deklariert:

HTML:
<tr>
  <td width="25%">Nachricht:</td>
  <td><textarea cols="45" name="nachricht" rows="18">
  
       <?if (isset($_SESSION['nachricht'])) { echo  $_SESSION['nachricht'] ; }?>
   
  </textarea></td>
</tr>

Und ausgewertet wird es wie folgt:

PHP:
$_SESSION['nachricht'] = $_POST['nachricht'];
 
Sieht mir eher danach aus als würdest die Mail als html format versenden.Daher auch die Doppel umbrüche.

Entweder du versendest das als Text dann hast keine doppelten Zeilenumbrüche oder du macht eine anständig Html formatierung.

Mfg Splasch
 
Hmm.. Also ich habe jetzt nochmal die Formatierung überprüft. Das Dokument wird als text/plain gesendet und nicht als html. Diese Angabe muss ich doch im Header des html-Formulars machen, oder?

Das sieht dann bei mir so aus:

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/plain" 
charset="iso-8859-1" Content-Transfer-Encoding="8bit">
	
</head>
<body>
formular..
</body>
</html>
 
Zurück