mail()-befehl, inhalt aus form.feldern kommt nicht an.

stefancp

Mitglied
Hallo Leute,

ich denke, dass dieses Problem nicht neu ist, aber ich habe in keinem anderen Thread eie hilfreiche Antwort auf mein Problem gefunden.
Ich habe eine HTML-Datei mit einem Formular. Die Daten aus den Formularfeldern will ich mithilfe meines simplen php-skripts (test.php) als Mail versenden.
Die Mail kommt auch an und schreibt lediglich das Wort -Formulartext-. Der Rest bleibt auf der Strecke...
Wer kann mir da weiterhelfen?

HTML:
<form method="post" enctype="text/plain" action="../../../skripte/test.php">
<fieldset class="fax_best_field">
<legend>Geben&nbsp;Sie&nbsp;bitte&nbsp;Ihre&nbsp;Daten&nbsp;ein...</legend>
	 <p>Anrede:</p>
<select name="anrede" size="1">
<option value=""></option>
<option value="Firma">Firma</option>
<option value="Frau">Frau</option>
<option value="Herr">Herr</option>	 
</select>
	 <p>Firmenname:</p>
<input name="firma" type="text" size="1" maxlength="100">
	 <p>Vorname:</p>
<input name="vorname" type="text" size="1" maxlength="100">
	 <p>Nachname:</p>
<input name="nachname" type="text" size="1" maxlength="100">
<input type="submit" value="Absenden">		
</fieldset>
</form>

Code:
<?php
$strzieladr = "stefancp@gmx.de";
$strabsender = "formular@domain.de";
$strabstand = ":\t";
$strmailtext = "";
$strcheck = ""; 
while(list($strname,$value) = each($_POST))
{
	$strmailtext .= $strname.$strabstand.$value."\n";
	$strcheck .= $value;
}
if($strcheck = "") {
header("Location: ../error.htm");
}
else
{ 
	 mail("$strzieladr", "test", "Formulartext:", "$strmailtext", "-f $strabsender");
header("Location: ../html/kontakt/kont_dank.htm");
}
?>
 
Hallo Gumbo,
erstmal danke für die schnelle Antwort!!

Habe gerade mal die Seite angesehen und auch was ausprobiert, aber es passiert nichts anderes! Leider!

Erkennst Du denn einen Fehler in meinen Parametern?

Gruß, Stefan
 
Ich versuche mal dir die Bedeutungen der Parameter zu erklären: Parameter ? …
  • … ist zur Angabe des Empfängers.
  • … ist zur Angabe des Betreffs.
  • … ist zur Angabe des E-Mail-Inhaltes.
  • … ist zur Angabe zusätzlicher Header-Felder, die im Kopfbereich der E-Mail gesandt werden sollen.
  • … ist zur Angabe zusätzlicher Parameter, die an das E-Mail-Versandprogramm übergeben werden sollen.
Prüfe diese mal mit deinen Angaben.
 
Hallo Gumbo,

habe das schon dahingehend überprüft und etwas abgeändert...

Code:
	 mail("$strzieladr", "test", "$strmailtext", "","-f $strabsender");

Da ich keine weiteren Header vorsehen möchte, würde ich gern den 4. Parameter leer lassen.
Ist dann die obige Syntax so richtig?
Kommt aber leider trotzdem nichts an. Scheint aber eher an der Übernahme der Daten aus der html-Datei zu sein, denn wenn ich im php-Code die $mailtext-Variable mit einem festen Ausdruck definiere, kommt dieser in der Mail an.

Gruß, Stefan
 
Ich wuerde eher den 5. Parameter weglassen und den 4. nutzen um den Absender festzulegen.

Das wuerde dann so aussehen:
PHP:
mail("$strzieladr", "test", "$strmailtext", "From: ".$strabsender."\n");
 
Hi Dennis,

danke für den Tipp. Bin aber noch nicht sicher, ob das für meinen provider/server ausreicht,
weil die Emails dort automatisch nicht versendet werden, wenn der Absender nicht klar definiert ist und die schlugen halt diese Version mit dem "-f info@..." vor.

Mein größtes Problem scheint aber eher zu sein, dass die Daten aus der HTML-Datei nicht
in der $mailtext-Variablen und somit auch nicht in der Mail ankommen.

Gruß, Stefan
 
Zurück