PHP: Formular Datei-Anhang per Email senden

Dieses Thema im Forum "Webentwicklung" wurde erstellt von »The Gr4ndp4, 17. März 2015 .

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 17. März 2015
    Hallo, ich habe ein Kontaktformular wo der Kunde die Möglichkeit haben soll, eine Datei mit hochzuladen.

    Jetz meine Frage, ist es sinvoller den Link zur Datei einfach mit zu senden, oder die ganze Datei.

    Und wie setze ich das alles am besten um, ich habe schon einige Scripte gefunden, aber so richtig blicke ich da nicht durch, machne meinten ich muss erst das "Pear Script" auf meinen Server installieren, andere sprechen gar nicht von dem Pear Script.

    Als Beispiel Code habe ich z.B. folgendes gefunden.

    Code:
    
     <?php
    function mail_att($to,$subject,$message,$anhang)
     {
     $absender = "Mein Name";
     $absender_mail = "ich@domain";
     $reply = "antwort@adresse";
    
     $mime_boundary = "-----=" . md5(uniqid(mt_rand(), 1));
    
     $header ="From:".$absender."<".$absender_mail.">\n";
     $header .= "Reply-To: ".$reply."\n";
    
     $header.= "MIME-Version: 1.0\r\n";
     $header.= "Content-Type: multipart/mixed;\r\n";
     $header.= " boundary=\"".$mime_boundary."\"\r\n";
    
     $content = "This is a multi-part message in MIME format.\r\n\r\n";
     $content.= "--".$mime_boundary."\r\n";
     $content.= "Content-Type: text/html charset=\"iso-8859-1\"\r\n";
     $content.= "Content-Transfer-Encoding: 8bit\r\n\r\n";
     $content.= $message."\r\n";
    
     //$anhang ist ein Mehrdimensionals Array
     //$anhang enthält mehrere Dateien
     if(is_array($anhang) AND is_array(current($anhang)))
     {
     foreach($anhang AS $dat)
     {
     $data = chunk_split(base64_encode($dat['data']));
     $content.= "--".$mime_boundary."\r\n";
     $content.= "Content-Disposition: attachment;\r\n";
     $content.= "\tfilename=\"".$dat['name']."\";\r\n";
     $content.= "Content-Length: .".$dat['size'].";\r\n";
     $content.= "Content-Type: ".$dat['type']."; name=\"".$dat['name']."\"\r\n";
     $content.= "Content-Transfer-Encoding: base64\r\n\r\n";
     $content.= $data."\r\n";
     }
     $content .= "--".$mime_boundary."--"; 
     }
     else //Nur 1 Datei als Anhang
     {
     $data = chunk_split(base64_encode($anhang['data']));
     $content.= "--".$mime_boundary."\r\n";
     $content.= "Content-Disposition: attachment;\r\n";
     $content.= "\tfilename=\"".$anhang['name']."\";\r\n";
     $content.= "Content-Length: .".$dat['size'].";\r\n";
     $content.= "Content-Type: ".$anhang['type']."; name=\"".$anhang['name']."\"\r\n";
     $content.= "Content-Transfer-Encoding: base64\r\n\r\n";
     $content.= $data."\r\n";
     } 
     
     
     
    
     if(@mail($to, $subject, $content, $header)) return true;
     else return false;
     }
    ?> 
    
    

    Mein aktueller PHP Teil sieht derzeit so aus

    Code:
    
    <?php
    if($_POST["send"])
     {
    
    
     
    $email = $_POST["email"];
    $name = $_POST["name"];
    $vname = $_POST["vname"];
    $tele = $_POST["telefon"];
    $nachricht = $_POST["message"];
    
    
    if ($_POST["1"] == "checkbox1")
    {
    $material = "Preisklasse 1 (z.B. Buche, Eiche, Ahorn)";
    }
    
    
    if ($_POST["1"] == "checkbox2")
    {
    $material = "Preisklasse 2 (z.B. Nussbaum, Rüster)";
    }
    
    
    if ($_POST["2"] == "checkbox3")
    {
    $stoff = "Preisklasse 1 (z.B. Flachgewebe)";
    }
    
    
    if ($_POST["2"] == "checkbox4")
    {
    $stoff = "Preisklasse 2 (z.B. Mohairstoffe, Plüsch)";
    }
    
    if ($_POST["2"] == "checkbox5")
    {
    $stoff = "Preisklasse 3 (z.B. Leder)";
    }
    
    if ($_POST["3"] == "checkbox6")
    {
    $fuss = "Preisklasse 1 (z.B. Kunststoff)";
    }
    
    if ($_POST["3"] == "checkbox7")
    {
    $fuss = "Preisklasse 2 (z.B. Holz)";
    }
    
    if ($_POST["3"] == "checkbox8")
    {
    $fuss = "Preisklasse 3 (z.B. Metall)";
    }
    
    
    
    $timestamp = time();
    $datum = date("d.m.Y",$timestamp);
    $uhrzeit = date("H:i",$timestamp);
    
    
    
    $mail_empfaenger="info@sofaunikat.de";
    $mail_absender=$email;
    $betreff="Sofaunikat - Anfrageformular";
    $text= "
    
    Name: $name
    Vorname: $vname
    Telefon: $tele
    E-mail: $email
    
    Material: $material
    Stoffart: $stoff
    Befußung: $fuss
    
    Nachricht:
    $nachricht
    
    
    geschirben am : $datum, um $uhrzeit Uhr
    ";
    
    
    //DATEI UPLOAD
    
    
    
    
    mail($mail_empfaenger, $betreff, $text, "From:$mail_absender");
    
    }
    ?>
    
    
    und hier der Link zu Seite : Sofaunikat - Anfrageformular
     

  2. Anzeige
  3. #2 17. März 2015
    AW: PHP: Formular Datei-Anhang per Email senden

    warum nutzt du nicht die php mailer klasse? Worx International Inc.
    da kannste auch easy die datei direkt an die Mail hängen
     

  4. Videos zum Thema
Die Seite wird geladen...