Hallo,
ich hab php code wo ich den fehler für das anfügen einen Bildes nicht finde.
Email wird im diem Form versendet, aber ich erhalte das Image nicht im Anhang der mail.
Könnt ihr mir sagen warum?
kontaktform.php
sobald ich im form eine datei zum anhängen uebermittelt hab und auf submit gehe, bekomme ich meldung das email raus is. was ich erhalte ist die email aber ohne das gewünschte BILD.
ich hab php code wo ich den fehler für das anfügen einen Bildes nicht finde.
Email wird im diem Form versendet, aber ich erhalte das Image nicht im Anhang der mail.
Könnt ihr mir sagen warum?
kontaktform.php
Code:
<?php
// PHP >= 5
if(phpversion() >= 5) {
// Name des Anhangs in der Mail
$filename = $_FILES['file']['name'];
// Text der Nachricht
$message = $text;
// Aufbau des Anhangs
$message .= "\r\n";
// Anhang starten
$message .= "begin 666 $filename\r\n";
// Datei einlesen und passend encoden
$message .= convert_uuencode(
fread(
fopen($_FILES['file']['tmp_name'], "r"),
$_FILES['file']['size']
)
);
// Anhang Ende
$message .= "end\r\n";
// PHP Version < 5
} else {
// Endung herausfinden
$end = explode('.', $_FILES['file']['name']);
// passenden MIME-Typ suchen
switch ($end[1]) {
case 'gz': $types = 'application/gzip';
break;
case 'jpg':
case 'JPG':
case 'jpeg':
case 'JPEG':
case 'jpe': $types = 'image/jpeg';
break;
case 'png': $types = 'image/png';
break;
case 'ico': $types = 'image/x-icon';
break;
case 'GIF':
case 'gif': $types = 'image/gif';
break;
// Wenn es den noch nicht gibt, eine mail an den admin senden und abrechen
default: mail($Empfaenger, 'neuer MIME-Typ erforderlich', 'Es wurde versucht folgende Datei zu versenden: '.$_FILES['file']['name'].'\nEs ist aber kein MIME-Typ für diese Endung vorhanden.');
die('<b>Der gewünschte Dateityp wird noch nicht unterstützt! Es wurde automatisch eine eMail an den Webmaster versandt, damit er das Script updaten kann. Bitte haben Sie etwas Geduldt.');
break;
}
// Name des Anhangs in der Mail
$filename = $_FILES['file']['name'];
// Datei einlesen
$filecontent = fread(
fopen($_FILES['file']['tmp_name'], "r"),
$_FILES['file']['size']
);
// Trenner erstellen
$splitter = md5(uniqid(time()));
// MIME Version festlegen
$sender .= "MIME-Version: 1.0\n";
// festlegen das die mail aus mehreren teilen besteht, die gemischt vorkommen und ersten teil mit Trenner einleiten
$sender .= "Content-Type: multipart/mixed; boundary=$splitter\n\n";
// nachricht, wenn kein MIME unterstützt wird
$message = "This is a multi-part message in MIME format\n";
// ersten teil beenden
$message .= "--$splitter\n";
// Content-type und Encoding für die nachricht festlegen
$message .= "Content-Type: text/plain\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";
// Nachricht einfügen
$message .= $text."\n";
// teil zwei beenden
$message .= "--$splitter\n";
// Type und Encoding für den anhang festlegen und im den namen geben
$message .= "Content-Type: ".$types."; name=\"$filename\"\n";
$message .= "Content-Transfer-Encoding: base64\n";
// mit "attachment" sagen das es ein anhang ist und namen geben
$message .= "Content-Disposition: attachment; filename=\"$filename\"\n\n";
// Inhalt des anhangs einfügen, encoden und zelen auf 72 zeichen kürzen
$message .= chunk_split(base64_encode($filecontent))."\n";
// email beenden
$message .= "--$splitter--";
}
$Empfaenger = "email@email.de";
if($_REQUEST['Send'])
{
if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Marke']))
{
echo"Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle Felder aus!";
}
else
{
$Mailnachricht = "Sie haben folgende Nachricht erhalten: \n\n";
while(list($Formularfeld, $Wert)=each($_REQUEST))
{
if($Formularfeld!="Send")
{
$Mailnachricht .= $Formularfeld.": ".$Wert."\n";
}
}
$Mailnachricht .= "\nDatum/Zeit: ";
$Mailnachricht .= date("d.m.Y H:i:s");
$Mailbetreff = "Auto: ";
$Mailbetreff .= $_REQUEST['Marke'];
mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$_REQUEST['Email']);
echo"Vielen Dank für Ihre eMail!";
}
}
else
{
echo"Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a href=\"kontaktformular.php\">Seite</a>.";
}
?>
sobald ich im form eine datei zum anhängen uebermittelt hab und auf submit gehe, bekomme ich meldung das email raus is. was ich erhalte ist die email aber ohne das gewünschte BILD.