IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

envoi de pièces jointes avec phpmailer


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2021
    Messages : 12
    Points : 16
    Points
    16
    Par défaut envoi de pièces jointes avec phpmailer
    Bonjour, je n'arrive pas à envoyer plusieurs pièces jointes avec phpmailer?

    voici mon code:

    Code : 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
    $destination_path = "piecesjointes/";
    						$target_path = $destination_path . basename( $_FILES["uploaded_file"]["name"]);
    						move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $target_path);
    						$destinataire = 'pascb4233@gmail.com';
    							$sujet = $objet ;
    							$entete = "From: TVB <newsletter@tlb.com>". "\r\n";
    							$entete .= "Content-type:text/html;charset=UTF-8" . "\r\n";
     
    					            // Le lien d'activation est composé du login(log) et de la clé(cle)
    							$message = $email;
    						try {
     
    						$mail = new PHPMailer();
    						//$mail->IsSMTP(); // set mailer to use SMTP
    						$mail->SMTPDebug  = 2; 
    						$mail->From = $sender;
    						$mail->FromName = $sender;
    						$mail->Host = 'mail.infomaniak.com'; // specif smtp server
    						$mail->SMTPSecure= "ssl"; // Used instead of TLS when only POP mail is selected
    						$mail->Port = 465; // Used instead of 587 when only POP mail is selected 465
    						$mail->SMTPAuth = true;
    						$mail->Username = 'newsletter@tlb.com'; // SMTP username
    						$mail->Password = 'essai'; // SMTP password
    						$mail->setFrom($destinataire, 'TVB');
                            $mail->addAddress($destinataire, 'TVB'); 
    						$mail->WordWrap = 50; // set word wrap
     
    						$mail->AddAttachment($target_path);
     
    						//$mail->AddAttachment(basename($target_path . $_FILES['uploaded_file']['name']));
     
     
    						$mail->IsHTML(true); // set email format to HTML
    						$mail->Subject = $sujet;
                            $mail->Body    = $message;
                            $mail->AltBody = 'Vous ne pouvez pas lire le message en HTML?';
     
    						$mail->send();
    en fait avec $mail->AddAttachment(?) il faudrait envoyer tous les fichiers d'un répertoire sur le serveur

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 440
    Points : 15 814
    Points
    15 814
    Par défaut
    pour récupérer la liste des fichiers d'un répertoire, vous pouvez utiliser cette fonction :
    https://www.php.net/manual/fr/function.glob.php

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1

  4. #4
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2021
    Messages : 12
    Points : 16
    Points
    16
    Par défaut
    merci pour les réponses mais le problème est que le move uploaded ne met qu'un seul fichier sur le serveur alors que avec mon input file j'en sélectionne plusieurs?
    j'ai trouvé ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    foreach($_FILES as $file){
    						    $directory = "./piecesjointes/";
    						    $target_path = $directory .($file['name']);
    						    if(move_uploaded_file($file['tmp_name'], $target_path)){
    							echo "the file ".basename($file['name'])." has been uploaded";
    						    }else{
    							echo "there was an error";
    						    }
     
    						    if(file_exists($target_path)) { $mail->AddAttachment($target_path); }
    						    else { echo $target_path.' inexistant'; }
    						}

  5. #5
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 440
    Points : 15 814
    Points
    15 814
    Par défaut
    regardez là pour l'upload de plusieurs fichiers :
    https://www.php.net/manual/fr/featur...d.multiple.php

  6. #6
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2021
    Messages : 12
    Points : 16
    Points
    16
    Par défaut
    voici mon input
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Pièces jointes:<br>
    <input class="inputcontact" type="file" name="uploaded_file[]" multiple/><br />

    et le code, maintenant il enregistre bien les fichiers du input sur le serveur mais met pas les pièces jointes?

    Code : 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
    foreach($_FILES as $file){
    						    $directory = "./piecesjointes/";
     
    						    $countfiles = count($_FILES['uploaded_file']['name']);
    						    for($i=0;$i<$countfiles;$i++){
    						    	$target_path = $directory .($file['name']);
    						    	$filename = $_FILES['uploaded_file']['name'][$i];
    						    if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'][$i],'piecesjointes/'.$filename)){
    							echo "the file ".($file['name'])." has been uploaded";
    						    }else{
    							echo "there was an error";
    						    }
    						    if(file_exists($target_path)) { $mail->AddAttachment($target_path); }
    						    else { echo $target_path.' inexistant'; }
    						}   
    						}

  7. #7
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2021
    Messages : 12
    Points : 16
    Points
    16
    Par défaut
    problème résolu, merci
    en fait il manquait à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $target_path = $directory .($file['name']);
    $target_path = $directory .($file['name'][$i]);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2005] Envoi de pièces jointes avec sp_send_dbmail
    Par ksiop0720 dans le forum Administration
    Réponses: 1
    Dernier message: 29/04/2014, 10h56
  2. Envoi de pièce jointe avec Indy
    Par jerfe dans le forum Web & réseau
    Réponses: 0
    Dernier message: 25/02/2013, 13h03
  3. Problème d'envoi de pièce jointe avec envoi de mail composant Indy
    Par Monromero1 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 15/06/2012, 21h55
  4. [Toutes versions] Envoi de pièce jointe avec WSS
    Par hawk91 dans le forum SharePoint
    Réponses: 4
    Dernier message: 21/02/2010, 11h08
  5. envoi fichier pièce jointe avec Jmail
    Par nickg dans le forum ASP
    Réponses: 2
    Dernier message: 04/07/2006, 10h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo