2016-07-06 8 views
0

Ich möchte eine Anhangdatei senden, die vom Benutzer aus einem HTML-Formular (z. B. eine PDF-Datei) ausgewählt wurde, und sie per E-Mail an das Ziel senden.Anlage per Formular mit PHPMailer senden

Ich kann jede Eingabe per E-Mail senden, aber der Anhang, können Sie bitte helfen, jede Hilfe geschätzt. Hier ist mein Code

<label>Mail : </label> 
    <input name="email" type="text" placeholder="mail adress"> 
    <div class="box"> 

    &nbsp; 

    <input type="file" name="file" id="file" class="inputfile inputfile-5" /> 
    </div> 

Und meine Form-handler.php (Ich bin das Hochladen nur die notwendigen Linien):

<?php 

    $file = $_POST['file']; 

    $email = $_POST['email']; 

    require $_SERVER["DOCUMENT_ROOT"] . '/PHPMailer/PHPMailerAutoload.php'; 

     $mail = new PHPMailer; 

     $mail->isSMTP(); 
     $mail->SMTPDebug = 0; 
     $mail->Debugoutput = 'html'; 
     $mail->Host = '*****'; 
     $mail->SMTPAuth = true; 
     $mail->Username = '****'; 
     $mail->Password = '****'; 
     $mail->From = $email; 
     $mail->SMTPSecure = 'tls'; 
     $mail->Port = ****; 

     $mail->setFrom('*****', '*****'); 

     $mail->addAddress('*****', '*****'); 

     $mail->Subject = utf8_decode("Thank you for signing up"); 




     $mail->AddAttachment($_FILES['file']['tmp_name'], $_FILES['file']['name']); 

     $mail->Body = ($file); 

     //$mail->AltBody = utf8_decode($file); 

     if (!$mail->Send()) { 
      echo "error. <p>"; 
      echo "Mailer Error: " . $mail->ErrorInfo; 
      exit; 
     } 

     echo "mail sent"; 

?> 
+0

laden Sie die Datei hoch? Wenn Sie $ _FILES ['Datei'] ['tmp_name'] zurückgeben, was bekommen Sie? –

+0

Ich bekomme nichts, blank !! kein Fehler! –

+0

Dann wird die Datei nicht hochgeladen. Sie müssen die Datei hochladen und fügen Sie den Pfad zur Datei in Anhang –

Antwort

0

Bevor Sie eine Anlage senden Sie müssen herausfinden, wo die Anlage ist. Wenn Sie die Datei hochladen, können Sie sie zum Hochladen in einen bestimmten Ordner zuweisen.

move_uploaded_file($_FILES["file"]["tmp_name"],"./upload/" . $_FILES["file"]["name"]); 

In diesem Fall erstellen wir haben ein „upload“ -Ordner in unserem Verzeichnis und wir speichern unsere Datei in diesem Verzeichnis. Nach dem Hochladen der Datei müssen wir den Pfad in einer Variablen speichern. Dies wird den Trick machen.

Jetzt haben wir alles, was wir brauchen, und wir können die Datei als Anhang mit E-Mail senden.

$mail->AddAttachment($filename); 

Ich hoffe, das hilft Ihnen.

+0

Vielen Dank, das half, iv arrangierte meinen Code, funktioniert jetzt gut –

+0

Ich bin froh, dass das hier :) –

+0

@ Coby_131 wenn die Antwort Ihren Code behoben markiert es als Lösung für Ihre Frage –