File-Versand per Online-Formular #Problem#

LuvShining

Erfahrenes Mitglied
Hallöchen,

ich habe derzeit ein kleines, aber doch sehr nerviges Problem mit Formular.

Über das Formular soll der User die Möglichkeit haben mir ein Bild per eMail mitzusenden.
Das klappt auch prima - zumindest was den Dateianhang betrifft, der ist dabei. Dummerweise nur wird mir die Email immer ohne den restlichen Inhalt wie z.B. $name, $telefon, $text usw. übermittelt.
Sobald ich über das selbe Formular eine Nachricht ohne Anhang versende klappt es prima. Dann werden auch alle Variablen übergeben.

Es ist sicherlich ein ganz simpler Fehler- aber ich finde ihn nicht :-(

Hat wohl jemand einen Tipp für mich Ich würde mich sehr freuen!

// Überprüfungen der zu übermittelnden Daten:
unset($errors);
if ($_FILES['anhang']['size'] > $max_attach_size) $errors[] = "Anhang zu groß (".number_format($_FILES['anhang']['size']/1000,0,",","")." KB) - Maximale Größe: ".number_format($max_attach_size/1000,0,",","")." KB";

// Wenn Anhang, dann MIME-Mail erstellen:
if (isset($_FILES['probe']['name']) && trim($_FILES['probe']['name']) != "")
{

// Datei einlesen und codieren:
$datei_content = fread(fopen($_FILES['anhang']['tmp_name'],"r"),filesize($_FILES['anhang']['tmp_name']));
$datei_content = chunk_split(base64_encode($datei_content),76,"\n");

// Boundary festlegen:
$boundary = md5(uniqid(rand()));

// Anhang:
$mail_header .= "\n--".$boundary;
$mail_header .= "\nContent-Type: ".$_FILES['anhang']['type']."; name=\"".$_FILES['anhang']['name']."\"";
$mail_header .= "\nContent-Transfer-Encoding: base64";
$mail_header .= "\nContent-Disposition: attachment; filename=\"".$_FILES['anhang']['name']."\"";
$mail_header .= "\n\n".$datei_content;

// Ende:
$mail_header .= "\n--".$boundary."--";

// Sende E-Mail und gebe Fehler bzw. Bestaetigung aus
if (@mail($mailto,"Betreffzeile XY,"
Inhalt der EMail... leider immer leer, es sei denn, es wird ohne eine Mail ohne Anhang verschickt.
",$mail_header))
$sent = true;
else $errors[] = "FEHLER!";
}

// kein Anhang, normale E-Mail:
else
{
$mail_header = "Von: ".$mail_name." <".$mail_email.">\n";
$mail_header .= "Content-Type: text/plain";
if (@mail($mailto,"Betreffzeile XY ohne Bildanhang", "
Vollständiger Name: $vorname $name
Anschrift: $anschrift
eMailanschrift: $mail
usw.
------------------------------------------"
)) $sent = true; else $errors[] = "FEHLER";
}

Vielen Dank vorab für eure Hilfe!
Nadine
 
Also jetzt rate ich nach Problem nummer eins, was hier fast jeder macht wenn E-Mails nicht ankommen, oder nicht korrekt angezeigt werden.

Der Absender einer E-Mail (Die Absenderadresse) muss deffiniert werden.
FROM: support@xyz.de .....
Diese Adresse muss auch tatsächlich auf dem Server existieren!

Versuche es mal so!
 
Zurück