Envoi de 2 pièces jointes en mail php
Résolu/Fermé
tomeck
Messages postés
12
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
29 octobre 2015
-
5 févr. 2015 à 15:10
tomeck Messages postés 12 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 29 octobre 2015 - 6 févr. 2015 à 12:18
tomeck Messages postés 12 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 29 octobre 2015 - 6 févr. 2015 à 12:18
A voir également:
- Envoi de 2 pièces jointes en mail php
- Yahoo mail - Guide
- Programmer envoi mail gmail - Guide
- 2 comptes whatsapp - Guide
- Word numéro de page 1/2 - Guide
- Publipostage mail - Guide
3 réponses
Mazamazine
Messages postés
81
Date d'inscription
mercredi 27 février 2008
Statut
Membre
Dernière intervention
10 février 2015
13
5 févr. 2015 à 21:57
5 févr. 2015 à 21:57
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...
tomeck
Messages postés
12
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
29 octobre 2015
1
6 févr. 2015 à 11:37
6 févr. 2015 à 11:37
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.
tomeck
Messages postés
12
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
29 octobre 2015
1
6 févr. 2015 à 12:18
6 févr. 2015 à 12:18
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! ;)