mail() inkl. Leerzeichen oder Tabulator

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
hotkey
Mitglied
Beiträge: 89
Registriert: 19.11.2002 13:49
Wohnort: Stralsund
Kontaktdaten:

mail() inkl. Leerzeichen oder Tabulator

Beitrag 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?
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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.
hotkey
Mitglied
Beiträge: 89
Registriert: 19.11.2002 13:49
Wohnort: Stralsund
Kontaktdaten:

Beitrag 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.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Versuchs mal mit \t anstatt den Tabulator direkt im Texteditor einzugeben.
hotkey
Mitglied
Beiträge: 89
Registriert: 19.11.2002 13:49
Wohnort: Stralsund
Kontaktdaten:

Beitrag 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.
Benutzeravatar
King Crusty
Mitglied
Beiträge: 209
Registriert: 20.04.2002 11:58
Wohnort: Deggendorf - Altötting
Kontaktdaten:

Beitrag 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:
hotkey
Mitglied
Beiträge: 89
Registriert: 19.11.2002 13:49
Wohnort: Stralsund
Kontaktdaten:

Beitrag 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.
Antworten

Zurück zu „Coding & Technik“