Envoie de mail avec pièce jointe
Résolu/Fermé
Sinistrus
Messages postés
1017
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
-
9 août 2018 à 14:02
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 11 août 2018 à 00:41
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 11 août 2018 à 00:41
A voir également:
- Envoie de mail avec pièce jointe
- Yahoo mail - Guide
- 1 pièce jointe - Guide
- One piece kai vf - Forum Cinéma / Télé
- Je n'arrive pas a envoyer un mail avec piece jointe ✓ - Forum Mail
- Créer un compte yahoo mail gratuit avec capacité de - Guide
4 réponses
jordane45
Messages postés
38136
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 avril 2024
4 649
9 août 2018 à 15:17
9 août 2018 à 15:17
Bonjour,
Commence par faire un ECHO de tes différentes variables ($DESTINATION, stripslashes($Sujet), stripslashes($Body), $Header) pour voir si elles sont conformes à ce que tu penses....
Pense aussi à regarder dans ton dossier SPAM au cas où et/où à tester sur une autre boite mail.
Par contre, le code pour les PJ.. ça se met dans le body et pas le header non ? (je ne sais pas si ça fonctionne dans le header...)
Commence par faire un ECHO de tes différentes variables ($DESTINATION, stripslashes($Sujet), stripslashes($Body), $Header) pour voir si elles sont conformes à ce que tu penses....
Pense aussi à regarder dans ton dossier SPAM au cas où et/où à tester sur une autre boite mail.
Par contre, le code pour les PJ.. ça se met dans le body et pas le header non ? (je ne sais pas si ça fonctionne dans le header...)
// Première pièce jointe $Body = "Content-Type: application/octet-stream; name=" . basename($Fr_File['name']) . $_N; $Body .= "Content-Length:" . filesize($Fr_File['name']) . $_N; $Body .= "Content-disposition: attachment; filename=" . basename($Fr_File['name']) . $_N; $Body .= "Content-transfer-Encoding: base64\n\n"; $Body .= $encoded_attach . '--' . $_F . $_N; $Body .= nl2br($Fr_Message);
Sinistrus
Messages postés
1017
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
9 août 2018 à 16:57
9 août 2018 à 16:57
Bonjour jordan,
Dest :
Suje :
Body :
Header :
Rien dans les spams, et j'ai tenté le coup aussi avec les
Dest :
mail@mail.com
Suje :
Lorem ipsum
Body :
Content-type: {"application/octet-stream"}; name=_fichiers/aaa.txt Content-Length:11 Content-transfer-Encoding: BASE64 Content-disposition: attachment; filename=_fichiers/aaa.txt VGVzdCBy6XVzc2k= -------=531aade08d58129d691f783645146ce3 Content-Type: text/html; charset="ISO-8859-1" Content-Transfer-Encoding: 8bit
Lorem ipsum
Header :
From:Lorem ipsum MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=-----=531aade08d58129d691f783645146ce3 -------=531aade08d58129d691f783645146ce3
Rien dans les spams, et j'ai tenté le coup aussi avec les
$body.=, aucune erreur, message de validation, fichier uploadé sur le serveur mais aucun mail.
jordane45
Messages postés
38136
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 avril 2024
4 649
9 août 2018 à 17:16
9 août 2018 à 17:16
Au cas où tu ne l'aurais pas vu... j'avais fait quelques modifications dans le code... tu n'as fait que reprendre le tient visiblement....
Essaye avec celui que je t'ai donné.
Essaye avec celui que je t'ai donné.
Sinistrus
Messages postés
1017
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
9 août 2018 à 18:04
9 août 2018 à 18:04
Pareil, j'ai toujours le texte de validation et le fichier dans le serveur, mais rien par mail ni dans les spam :
Dest :
Suje :
Body :
Head :
Dest :
mail@mail.com
Suje :
Lorem ipsum
Body :
Content-Type: application/octet-stream; name=aaa.txt Content-Length:11 Content-disposition: attachment; filename=aaa.txt Content-transfer-Encoding: base64 VGVzdCBy6XVzc2k= -------=d3267b8abeaa6c4cc847c4a3bdd615f0
Lorem ipsum
Head :
From:Lorem ipsum MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=-----=d3267b8abeaa6c4cc847c4a3bdd615f0 -------=d3267b8abeaa6c4cc847c4a3bdd615f0
Sinistrus
Messages postés
1017
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
10 août 2018 à 16:27
10 août 2018 à 16:27
Après avoir cherché un peu partout je suis tombé sur un article d'openclassrooms
(https://openclassrooms.com/fr/courses/1156346-e-mail-envoyer-un-e-mail-en-php)
J'ai suivi les instructions (je crois) :
- Je reçois la pièce jointe conforme (maintenant)
- Je reçois un fichier supplémentaire "mime-attachment"( je ne sais pourquoi)
- Le corps du mail est quand à lui "vide"...
Voici le code en question et merci encore pour ton aide :
(https://openclassrooms.com/fr/courses/1156346-e-mail-envoyer-un-e-mail-en-php)
J'ai suivi les instructions (je crois) :
- Je reçois la pièce jointe conforme (maintenant)
- Je reçois un fichier supplémentaire "mime-attachment"( je ne sais pourquoi)
- Le corps du mail est quand à lui "vide"...
Voici le code en question et merci encore pour ton aide :
$_Folder = "_fichiers/"; @mkdir ($_Folder,0777,true); $_Extent = array('.doc','.docx','.pdf','.txt'); $_Maxims = 52428800; $Fr_File = !empty($_FILES['Fr_Importer']) ? $_FILES['Fr_Importer'] : NULL; if(!in_array(strrchr($Fr_File['name'], '.'), $_Extent)) { $ERREUR.="Vous devez uploader un fichier de type doc, docx ou pdf..."; } if ($Fr_File['size'] > $_Maxims) { $ERREUR.="La taille maximale du fichier ne doit pas dépasser 2Mo"; } if (!move_uploaded_file($Fr_File['tmp_name'], $_Folder.$Fr_File['name'])) { $ERREUR.="Erreur lors de l'upload du fichier."; } else { $Fr_File['name'] = $_Folder.$Fr_File['name']; } if(file_exists($Fr_File['name'])) { $fichier = fopen($Fr_File['name'], "r"); $attachement = fread($fichier, filesize($Fr_File['name'])); $attachement = chunk_split(base64_encode($attachement)); fclose($fichier);} $boundary = "-----=".md5(rand()); $boundary_alt = "-----=".md5(rand()); $Sujet = $Fr_Objet; $Header = "From: \"".$Fr_Nom."\"<".$Fr_Email.">".$passage_ligne; $Header.= "MIME-Version: 1.0".$passage_ligne; $Header.= "X-Priority: 3".$passage_ligne; $Header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne; $Body = $passage_ligne."--".$boundary.$passage_ligne; $Body.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne; $Body.= $passage_ligne."--".$boundary_alt.$passage_ligne; $Body.= "Content-Type: application/octet-stream; charset=\"ISO-8859-1\"".$passage_ligne; $Body.= "Content-Transfer-Encoding: 8bit".$passage_ligne; $Body.= $passage_ligne; $Body.= nl2br($Fr_Message); $Body.= $passage_ligne; $Body.= $passage_ligne."--".$boundary_alt."--".$passage_ligne; $Body.= $passage_ligne."--".$boundary.$passage_ligne; $Body.= "Content-Type: application/octet-stream; name=".basename($Fr_File['name']).$passage_ligne; $Body.= "Content-Length:".filesize($Fr_File['name']).$passage_ligne; $Body.= "Content-Transfer-Encoding: base64".$passage_ligne; $Body.= "Content-Disposition: attachment; filename=".basename($Fr_File['name']).$passage_ligne; $Body.= $passage_ligne.$attachement.$passage_ligne.$passage_ligne; $Body.= $passage_ligne."--".$boundary."--".$passage_ligne; if(mail($DESTINATION, stripslashes(utf8_decode($Sujet)), stripslashes(utf8_decode($Body)), $Header)) {
Sinistrus
Messages postés
1017
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
11 août 2018 à 00:41
11 août 2018 à 00:41
Ligne 40 :
Remplacer :
$Body.= "Content-Type: application/octet-stream; charset=\"ISO-8859-1\"".$passage_ligne;
Par :
$Body.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
Merci Jordan pour ton coup de pouce.
Remplacer :
$Body.= "Content-Type: application/octet-stream; charset=\"ISO-8859-1\"".$passage_ligne;
Par :
$Body.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
Merci Jordan pour ton coup de pouce.