Zuviel Zeilenumbrüche nach Mailversandt

RageNo1

Erfahrenes Mitglied
Hallo,
wie mir gerade aufgefallen ist, läuft irgendwas bei meinem Kontaktformular falsch.
So sehen die Mails nach dem versandt im Postfach so aus:

Code:
Hallo,

irgendwie werden anstatt

ein zeilenumbruch immer

zwei Zeilenumbrüche gemacht!?

Hat jemand eine Ahnung was ich dagegen tun kann
damit es ganz normal mit einem Zeilenumbruch angezeigt wird?

Hier nochmal kurz das Script:
PHP:
<?php

$webmaster = "meine@mail.de";
$betreff = "guten tag";
$body = "eine nachricht wurde von $name ($mail) geschickt:\n $message";

$gesendet = "ihre nachricht wurde erfolgreich versandt.";
$mailerror = "sie haben keine gültige e-mail adresse eingegeben!";
$empty = "sie haben eines oder mehrere felder nicht ausgefüllt! alle felder müssen ausgefüllt werden!";

if ($name == "" || $mail =="" || $message =="") {
	echo "$empty";
}

else {
	if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$", $mail)) {
	mail("$webmaster","$betreff","$body","From: $mail");
                echo "$gesendet";
	}

	else {
	echo "$mailerror";
	}
}

?>

Mfg Hendrik
 
Probier mal folgendes:
PHP:
<?php

$name = $_POST["name"];
$mail = $_POST["mail"];
$message = nl2br($_POST["message"]);

$webmaster = "meine@mail.de";
$betreff = "guten tag";
$body = "eine nachricht wurde von $name ($mail) geschickt:\n $message";

$gesendet = "ihre nachricht wurde erfolgreich versandt.";
$mailerror = "sie haben keine gültige e-mail adresse eingegeben!";
$empty = "sie haben eines oder mehrere felder nicht ausgefüllt! alle felder müssen ausgefüllt werden!";

if ($name == "" || $mail =="" || $message =="") {
	echo $empty;
}

else {
	if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$", $mail)) {
	mail($webmaster, $betreff, $body, "From: $mail");
            echo $gesendet;
	} else {
	    echo $mailerror;
	}
}

?>
Was kommt da dann raus?
 
Den Zeilenumbruchzeichen HTML-Zeilenumbrüche voranzusetzen, ist nur dann sinnvoll, wenn die Nachricht auch als HTML klassifiziert wird, Diggity.
 
Ja, ich weiß ;)
Mich wunderts aber dass da überhaupt Zeilenumbrüche rein kommen.

Probier mal folgendes:

PHP:
<?php

$name = $_POST["name"];
$mail = $_POST["mail"];
$message = str_replace("\n", "", $_POST["message"]); //müsste die zeilenumbrüche entfernen

$webmaster = "meine@mail.de";
$betreff = "guten tag";
$body = "eine nachricht wurde von $name ($mail) geschickt:\n $message";

$gesendet = "ihre nachricht wurde erfolgreich versandt.";
$mailerror = "sie haben keine gültige e-mail adresse eingegeben!";
$empty = "sie haben eines oder mehrere felder nicht ausgefüllt! alle felder müssen ausgefüllt werden!";

if ($name == "" || $mail =="" || $message =="") {
    echo $empty;
}

else {
    if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$", $mail)) {
    mail($webmaster, $betreff, $body, "From: $mail");
            echo $gesendet;
    } else {
        echo $mailerror;
    }
}

?>
 
ich schätze, dass diese Problem mit der Auszeichnung des Eingabefelds zusammenhängt. Denn der Internet Explorer interpretiert etwa einen Wert des wrap-Attributs des textarea-Elements so, dass neben den explizip eingegebenen Zeilenumbrüchen auch noch zusätzliche an den Stellen des visuellen Umbruchs eingefügt werden.
 
Hallo,
vielen Dank für eure Hilfe.
Diese Zeiel hat zum gewünschten Erfolg geführt:
PHP:
$message = str_replace("\n", "", $_POST["message"]);

Mfg Ragey
 
Bei mir ist dieses Problem immer aufgrund der Art der Zeilenumbrüche in der PHP-Datei selbst aufgetreten. Habe ich im Editor eingestellt, dass ich mit Windows-Zeilenumbrüchen speichern möchte, kam es zu diesen Umbrüchen in der eMail, stelle ich auf UNIX-Umbrüche um passiert das nicht mehr.
 
Zurück