Besoin d'aide PHP Mailer

Petit nouveau ! | 6 Messages

12 oct. 2015, 12:35

Bonjour à tous ! :)

Je suis actuellement en train de réaliser un formulaire afin d'envoyer des fichiers uploadés par mail. Sur conseil de certains je me suis tourné vers PHPMailer.

Le côté upload fonctionne très bien hors mon problème est au niveau de la récupération du fichier. En effet lorsque je rempli le formulaire et que j'envoi le mail, je le reçoit bien mais la pièce jointe n'y est pas. Pourtant le fichier a bien été placé dans un repertoire de mon choix.

J'aimerais savoir d'où vient mon erreur, j'ai fait plusieurs modifications mais jamais sans succès..

Mon code :

Code : Tout sélectionner

<?php require_once("phpmailer/class.phpmailer.php"); $mail = new PHPMailer(); $mail->From = "[email protected]"; $mail->IsMail (); $mail->Subject = "Envoi de test"; $mail->IsHTML(false); $mail->Body = "Envoi de test"; $mail->AddAttachment('nom_repertoire/$name'); $mail->ClearAddresses (); $mail->AddAddress ("[email protected]"); @$mail->Send (); echo "envoi 1<br>"; ?>
Je vous remercie d'avance pour votre aide :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

12 oct. 2015, 13:13

Bonjour,
$mail->AddAttachment('nom_repertoire/$name');
Il faut concaténer correctement ta variable $name :
http://www.lephpfacile.com/cours/5-conc ... ux-chaines
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 6 Messages

12 oct. 2015, 14:19

En effet ^^. J'ai rectifié ça mais le problème persiste malheureusement..

Mammouth du PHP | 2703 Messages

12 oct. 2015, 15:02

$name est définie quelque part dans le code exécuté ? car ce n'est pas le cas dans ce qui est présenté.

Petit nouveau ! | 6 Messages

12 oct. 2015, 15:06

$name est définie quelque part dans le code exécuté ? car ce n'est pas le cas dans ce qui est présenté.
$name est le nom donné au fichier qu'on upload dans mon formulaire.

Petit nouveau ! | 6 Messages

12 oct. 2015, 15:59

Après plusieurs modifications je pense que le code le plus logique est celui ci :
<?php
 
require_once("phpmailer/class.phpmailer.php");
 
$mail = new PHPMailer();
$mail->From = "[email protected]";
 
$mail->IsMail ();
$mail->Subject = "Envoi de test";
$mail->IsHTML(false);
$mail->Body = "Envoi de test";
 
$mail->AddAttachment($_FILES[fichier]['tmp_name']);
 
$mail->ClearAddresses ();
$mail->AddAddress ("[email protected]");
@$mail->Send ();
echo "envoi 1<br>";
@$mail->Send ();
 
?>
Ca ne fonctionne toujours pas mais ça me semble mieux.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

12 oct. 2015, 17:38

Bonjour,

Supprime toutes les arobases de ton code car elles servent à masquer les erreurs or tu as besoin justement de voir les messages d'erreur pour débuguer.
Par ailleurs, ta fonction Send() est appelée 2 fois
Quand tout le reste a échoué, lisez le mode d'emploi...