PHP Email FORM mit Anhang

madirfan

Erfahrenes Mitglied
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
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&uuml;ck</a> und f&uuml;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&uuml;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.
 
Hi!

Wurde denn das Bild erfolgreich hochgeladen?
Liegt es im richtigen Verzeichnis?

Viele Grüße,
Jacka
 
hi,

ok das wird eine dumme frage aber:
im welchen verzeichniss muss ich den anlegen? ich seh im script kein verzeichniss, wo
es abgelegt werden soll..
 
hi,

ok das wird eine dumme frage aber:
welchen verzeichniss muss ich den anlegen? ich seh im script kein verzeichniss, wo
es abgelegt werden soll..
 
Zurück