Bonsoir,

j'utilise PHPMailer pour envoyer un mail avec une pièce attachée ; ci-dessous le code :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
if (isset($_POST['valider'])) {
$dossier = 'upload/';
$fichier = basename($_FILES['piece']['name']);
$taille_maxi = $_POST['MAX_FILE_SIZE'];
$taille = filesize($_FILES['piece']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg','doc','xls','ppt','txt');
$extension = strrchr($_FILES['piece']['name'], '.'); 
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt xls, ppt ou doc...';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['piece']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo 'Upload effectué avec succès !';
/* envoi du mail apres upload */		  
require("phpmailer/class.phpmailer.php");
$mail = new PHPMailer("---"); /*j'ai modifié la classe où j'ai créé un constructeur qui permet de passer en paramètre le nom de l'émetteur (et ça, ça marche) */
$mail->SetLanguage("en", 'includes/phpMailer/language/');
 
$mail->From     = "---";
$mail->AddAddress("---");
 
$piece="http://---/phpmailer/upload/".$fichier;
$mail->AddAttachment($piece);
 
$mail->Subject  = "First PHPMailer Message";
$mail->Body     = "Hi! \n\n This is my first e-mail sent through PHPMailer.";
 
 
if(!$mail->Send()) {
  echo 'Message was not sent.';
  echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
  echo 'Message has been sent.';
}
/* fin envoi mail */
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
else
{
     echo $erreur;
}
}
 
?>
et au lieu d'envoyer le mail, ça me donne le message d'erreur du titre ; pourquoi ?