Seite 1 von 1

mail() inkl. Leerzeichen oder Tabulator

Verfasst: 21.06.2003 10:01
von hotkey

Code: Alles auswählen

$message = "Absender:
	    --------------------------------------------- 	
	    Anrede:		".$anrede."
                    Vorname:	".$name_first."
  	    Nachname:	".$name_last."
  	    eMail:		".$email."
  
  	   Text:
  	   ---------------------------------------------
  	   ".$text."\n";
  
  $message = nl2br($message);
  
  $header  = "From: $name_first $name_last < $email\n";
  $header .= "Reply-To: $email\n"; 
  $header .= "Content-Type: text/html\n"; 
  
mail("test@test.de", "subject", $message, $header) 
In dieser Form möchte ich eine eMail verschicken. Das ganze funktioniert auch wunderbar. Mit Hilfe von nl2br($message) sorge ich dafür das die Zeilenumbrüche erhalten bleiben. Alerdings möchte ich auch das Leerzeilen oder Tabulatoren erhalten bleiben. Denn sonst wird der Inhalt der Variablen Anrede direkt hinter den Dopelpunkt von Anrede: gesetzt und das ist nicht so schön. Die normalen Steuerbefehle wie z.B. \t scheint die Funktion mai() nicht zu kennen.

Weiß jemand einen Rat?

Verfasst: 21.06.2003 18:22
von Pyramide
Da du den Content-Type auf text/html gesetzt hast, ist das kein Wunder, weil bei HTML Tabs, Leerzeichen, etc sog. Whitespace ist, welcher nur als ein einziges Leerzeichen interpretiert wird. Aber da der Text sowieso keine HTML-Steuerzeichen nutzt, schlage ich dir vor, daß du den Content-Type auf text/plain setzt.

Verfasst: 21.06.2003 19:38
von hotkey
Der Tip mit dem "text/plain" War schon nicht schlecht, aber funktionieren tut es immer noch nicht. Wahrscheinlich wird es daraus hinauslaufen das ich eine HTML eMail generiere.

Verfasst: 21.06.2003 20:45
von Pyramide
Versuchs mal mit \t anstatt den Tabulator direkt im Texteditor einzugeben.

Verfasst: 21.06.2003 21:26
von hotkey
Das habe ich doch. Ich habe die normalen Steuerzeichen (also \n und \t) von PHP genutzt. \n funktioniert ohne Probleme, aber \t mag das Skript einfach nicht. Ist echt zum Mäuse melken ;(

Code: Alles auswählen

$message = "
Absender:\n
------------------------------\n
Anrede:\t$sex\n
Vorname:\t$name_first\n
Nachname:\t$name_last\n
eMail:\t$email\n\n
Text:\n
------------------------------\n
$text";
  
$header  = "From: $name_first $name_last < $email\n";
$header .= "Reply-To: $email\n"; 
$header .= "Content-type: text/plain; charset=iso-8859-1\r\n";
  
mail("test@test.de", $subject, $message, $header)
Das ganze sieht dann so aus.

Code: Alles auswählen

Absender:

------------------------------

Anrede: Herr

Vorname: test

Nachname: test

eMail: test@test.de


Text:

------------------------------

TEST
Ich könnte jetzt das \n weglassen, aber dann setzt das Skript ja immer noch keinen Tabulator.

Verfasst: 21.06.2003 21:57
von King Crusty
ganz was blödes:
was passiert denn wenn du eine leere Variable dazwischenklebst?

$platz=" ";

hab ein ähnliches Problem auch mal so gelöst, damit ich den eigentlichen
Text bündig habe, da brauchst du halt dann 3 Variablen, aber das ist ja egal.

:lol:

Verfasst: 21.06.2003 22:00
von hotkey
Mit dem Gedanken habe ich auch schon gespielt, aber das wäre eine wirklich schmutzige Variante. Mal davon abgesehen das es funktioniert und ich mit mehreren Variablen Arbeiten müsste.