Envoi de 2 pièces jointes en mail php
Résolu
tomeck
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
tomeck Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
tomeck Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Envoi de 2 pièces jointes en mail php
- Telecharger toutes les pieces jointes gmail - Guide
- Programmer envoi mail gmail - Guide
- Publipostage mail - Accueil - Word
- Envoi mail cci - Guide
- Windows live mail - Télécharger - Mail
3 réponses
Si je ne m'abuse, tu utilise le même nom de variable pour plusieurs choses des 2 PJ, $attachement par exemple que tu écrases...
bonjour Mazamazine,
j'ai effectué plusieurs essai, dont celui de definir d'autres noms de variables.
voici le code avec les changements,
le resultat: le mail est bien envoyer mais avec toujours une seul pièce jointe.
en locurence la première. alors qu'avec l'autre code j'avais que la deuxième.
après quelques recherche sur différents forums cela pourrais provenir d'une "boundary" que je devrais recréer. mais j'avoue que je n'est pas tout a fait compris cette partie du code.
merci pour l'aide.
j'ai effectué plusieurs essai, dont celui de definir d'autres noms de variables.
voici le code avec les changements,
le resultat: le mail est bien envoyer mais avec toujours une seul pièce jointe.
en locurence la première. alors qu'avec l'autre code j'avais que la deuxième.
<?php $uphoto = $_FILES["fichierTexte"]['name']; $upimage = $_FILES["fichierTexte"]['tmp_name']; $upsize = $_FILES["fichierTexte"]['size']; $mail = $_POST['destinataire']; // Déclaration de l'adresse de destination. //=====preparation fichier2. $uphoto2 = $_FILES["fichierTexte2"]['name']; $upimage2 = $_FILES["fichierTexte2"]['tmp_name']; $upsize2 = $_FILES["fichierTexte2"]['size']; if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues. { $passage_ligne = "\r\n"; } else { $passage_ligne = "\n"; } //=====Déclaration des messages au format texte et au format HTML. $message_txt = stripslashes(htmlspecialchars($_POST['texte'])); $message_html = "<html><head></head><body><b>".stripslashes(htmlspecialchars($_POST['texte']))."</b></body></html>"; //========== //=====Lecture et mise en forme de la pièce jointe. $fichier = fopen("".$upimage."", "r"); $attachement = fread($fichier, filesize("".$upimage."")); $attachement = chunk_split(base64_encode($attachement)); fclose($fichier); //========== //=====Lecture et mise en forme de la pièce jointe2. $fichier2 = fopen("".$upimage2."", "r"); $attachement2 = fread($fichier2, filesize("".$upimage2."")); $attachement2 = chunk_split(base64_encode($attachement)); fclose($fichier); //========== //=====Création de la boundary. $boundary = "-----=".md5(rand()); $boundary_alt = "-----=".md5(rand()); //========== //=====Définition du sujet. $sujet = $_POST['titre']; //========= //=====Création du header de l'e-mail. $header = "From: \"$pseudo\"<".$_POST['delapartde'].">".$passage_ligne; $header.= "Reply-to: \"$pseudo\" <".$_POST['delapartde'].">".$passage_ligne; $header.= "MIME-Version: 1.0".$passage_ligne; $header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne; //========== //=====Création du message. $message = $passage_ligne."--".$boundary.$passage_ligne; $message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne; $message.= $passage_ligne."--".$boundary_alt.$passage_ligne; //=====Ajout du message au format texte. $message.= "Content-Type: text/plain; charset=\"UTF-8\"".$passage_ligne; $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne; $message.= $passage_ligne.$message_txt.$passage_ligne; //========== $message.= $passage_ligne."--".$boundary_alt.$passage_ligne; //=====Ajout du message au format HTML. $message.= "Content-Type: text/html; charset=\"UTF-8\"".$passage_ligne; $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne; $message.= $passage_ligne.$message_html.$passage_ligne; //========== //=====On ferme la boundary alternative. $message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne; //========== $message.= $passage_ligne."--".$boundary.$passage_ligne; //=====Ajout de la pièce jointe. $message.= "Content-Type: image/jpeg; name=\"$uphoto\"".$passage_ligne; $message.= "Content-Transfer-Encoding: base64".$passage_ligne; $message.= "Content-Disposition: attachment; filename=\"$uphoto\"".$passage_ligne; $message.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne; $message.= $passage_ligne."--".$boundary."--".$passage_ligne; //========== //=====Ajout de la pièce jointe2. $message.= "Content-Type: image/jpeg; name=\"$uphoto2\"".$passage_ligne; $message.= "Content-Transfer-Encoding: base64".$passage_ligne; $message.= "Content-Disposition: attachment; filename=\"$uphoto2\"".$passage_ligne; $message.= $passage_ligne.$attachement2.$passage_ligne.$passage_ligne; $message.= $passage_ligne."--".$boundary."--".$passage_ligne; //========== //=====Envoi de l'e-mail. mail($mail,$sujet,$message,$header); //========== // Redirection du visiteur vers la page du minichat header('Location: proposition.php'); ?>
après quelques recherche sur différents forums cela pourrais provenir d'une "boundary" que je devrais recréer. mais j'avoue que je n'est pas tout a fait compris cette partie du code.
merci pour l'aide.
merci!!!!! j'ai trouver!!!!
c'etait effectivement un boundary en trot entre les deux pièces jointes.
voici le code fonctionnelle pour tous ceux qui aurait le même problème que moi!
merci et à bientot pour d'autre soucis! ;)
c'etait effectivement un boundary en trot entre les deux pièces jointes.
voici le code fonctionnelle pour tous ceux qui aurait le même problème que moi!
<?php $uphoto = $_FILES["fichierTexte"]['name']; $upimage = $_FILES["fichierTexte"]['tmp_name']; $upsize = $_FILES["fichierTexte"]['size']; $mail = $_POST['destinataire']; // Déclaration de l'adresse de destination. //=====preparation fichier2. $uphoto2 = $_FILES["fichierTexte2"]['name']; $upimage2 = $_FILES["fichierTexte2"]['tmp_name']; $upsize2 = $_FILES["fichierTexte2"]['size']; if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues. { $passage_ligne = "\r\n"; } else { $passage_ligne = "\n"; } //=====Déclaration des messages au format texte et au format HTML. $message_txt = stripslashes(htmlspecialchars($_POST['texte'])); $message_html = "<html><head></head><body><b>".stripslashes(htmlspecialchars($_POST['texte']))."</b></body></html>"; //========== //=====Lecture et mise en forme de la pièce jointe. $fichier = fopen("".$upimage."", "r"); $attachement = fread($fichier, filesize("".$upimage."")); $attachement = chunk_split(base64_encode($attachement)); fclose($fichier); //========== //=====Lecture et mise en forme de la pièce jointe2. $fichier2 = fopen("".$upimage2."", "r"); $attachement2 = fread($fichier2, filesize("".$upimage2."")); $attachement2 = chunk_split(base64_encode($attachement2)); fclose($fichier2); //========== //=====Création de la boundary. $boundary = "-----=".md5(rand()); $boundary_alt = "-----=".md5(rand()); //========== //=====Définition du sujet. $sujet = $_POST['titre']; //========= //=====Création du header de l'e-mail. $header = "From: \"$pseudo\"<".$_POST['delapartde'].">".$passage_ligne; $header.= "Reply-to: \"$pseudo\" <".$_POST['delapartde'].">".$passage_ligne; $header.= "MIME-Version: 1.0".$passage_ligne; $header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne; //========== //=====Création du message. $message = $passage_ligne."--".$boundary.$passage_ligne; $message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne; $message.= $passage_ligne."--".$boundary_alt.$passage_ligne; //=====Ajout du message au format texte. $message.= "Content-Type: text/plain; charset=\"UTF-8\"".$passage_ligne; $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne; $message.= $passage_ligne.$message_txt.$passage_ligne; //========== $message.= $passage_ligne."--".$boundary_alt.$passage_ligne; //=====Ajout du message au format HTML. $message.= "Content-Type: text/html; charset=\"UTF-8\"".$passage_ligne; $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne; $message.= $passage_ligne.$message_html.$passage_ligne; //========== //=====On ferme la boundary alternative. $message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne; //========== $message.= $passage_ligne."--".$boundary.$passage_ligne; //=====Ajout de la pièce jointe. $message.= "Content-Type: image/jpeg; name=\"$uphoto\"".$passage_ligne; $message.= "Content-Transfer-Encoding: base64".$passage_ligne; $message.= "Content-Disposition: inline; filename=\"$uphoto\"".$passage_ligne; $message.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne; $message.= $passage_ligne.$passage_ligne; //========== $message.= "--".$boundary.$passage_ligne; //=====Ajout de la pièce jointe2. $message.= "Content-Type: image/jpeg; name=\"$uphoto2\"".$passage_ligne; $message.= "Content-Transfer-Encoding: base64".$passage_ligne; $message.= "Content-Disposition: attachment; filename=\"$uphoto2\"".$passage_ligne; $message.= $passage_ligne.$attachement2.$passage_ligne.$passage_ligne; $message.= $passage_ligne."--".$boundary."--".$passage_ligne; //========== //=====Envoi de l'e-mail. mail($mail,$sujet,$message,$header); //========== // Redirection du visiteur vers la page du minichat header('Location: proposition.php'); ?>
merci et à bientot pour d'autre soucis! ;)