Envoyer un email avec pièce jointe via PHPMailer

Je suis en train de préparer à créer une page de formulaire pour un site web qui va nécessiter beaucoup de champs pour l'utilisateur à remplir et qui sera envoyé à l'adresse email indiqué.

Jusqu'à présent, j'ai créé un mannequin php e-mail de la page qui reçoit votre Message, 1 pièce jointe, et de l'adresse de Messagerie du Destinataire à l'aide de Google SMTP.

Voici mon code pour les uploadtest.html:

<body>

<h1>Test Upload</h1>

<form action="email.php" method="get">
Message: <input type="text" name="message">
Email: <input type="text" name="email"><br>
Attach File: <input type="file" name="file" id="file">
<input type="submit">
</form>


</body>

uploadtest.html est ce que l'utilisateur va voir

Voici le code email.php:

<?php
    require("class.phpmailer.php");

    $mail = new PHPMailer();

    $recipiant = $_GET["email"];
    $message = $_GET["message"];

    $mail->IsSMTP();  //telling the class to use SMTP
    $mail->SMTPAuth   = true; //SMTP authentication
    $mail->Host       = "smtp.gmail.com"; //SMTP server
    $mail->Port       = 465; //SMTP Port
    $mail->SMTPSecure = 'ssl';
    $mail->Username   = "[email protected]"; //SMTP account username
    $mail->Password   = "xxxxxxxx";        //SMTP account password


    $mail->AddAttachment($_FILES['tmp_name']); //****HERE'S MY MAIN PROBLEM!!!


    $mail->SetFrom('[email protected]', 'CiniCraft.com'); //FROM
    $mail->AddReplyTo('[email protected]', 'Dom'); //Reply TO

    $mail->AddAddress($recipiant, 'Dominik Andrzejczuk'); //recipient email

    $mail->Subject    = "First SMTP Message"; //email subject
    $mail->Body       = $message;





    if(!$mail->Send()) {
      echo 'Message was not sent.';
      echo 'Mailer error: ' . $mail->ErrorInfo;
    } else {
      echo 'Message has been sent.';
    }
?>

Donc, à partir de ce que je peux dire ici, PHPMailer est AddAttachment() la méthode prend en paramètre l'URL du fichier de RÉPERTOIRE que vous voulez ci-joint. Et c'est là mon principal problème est.

Quel serait le nom de la variable qui permettrait d'obtenir l'emplacement de mon fichier (dir/upload.jpg) que j'ai téléchargé j'ai donc pu l'utiliser comme paramètre dans la AddAttachment() la méthode?

ce qui se passe quand vous faites cela: var_dump($_FILES['tmp_name']) juste avant votre code de pièce jointe ? Vous pouvez poster à la sortie de l' ?
aussi, vous pouvez supprimer vos renseignements personnels à partir de votre code.
$mail->AddAttachment($_FILES['tmp_name']); devrait être $mail->AddAttachment($_FILES['file']['tmp_name']);

OriginalL'auteur Matt Andrzejczuk | 2013-07-23