Problème d'envoi email avec pièce jointe
Résolu
deponton
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
deponton Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
deponton Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Lorsque je veux envoyer mon email avec une pièce jointe que je sélectionne dans mon PC,j'ai comme erreur ceci:
Au vu du message d'erreur,je comprends que le fichier n'as de nom,mais pourtant je sélectionne bien un fichier,voici mon code:
Pouvez vous me dire où se situe mon erreur?
Merci d'avance
Lorsque je veux envoyer mon email avec une pièce jointe que je sélectionne dans mon PC,j'ai comme erreur ceci:
Warning: fopen() [function.fopen]: Filename cannot be empty in /compte/scriptphp/liste_diffusion.php on line 76 ouverture du fichier impossible ...
Au vu du message d'erreur,je comprends que le fichier n'as de nom,mais pourtant je sélectionne bien un fichier,voici mon code:
<?php $texte_message=$_POST['message']; $mail = str_replace(" ",",",$_POST['email']); $sujet='Lettre d\'information '; /* partie générale de l'en-tête ******************************/ $entete ='From: "Equipe Site "<newsletter@moi.com>'."\n"; $entete .= "MIME-Version: 1.0\r\n"; $entete .= "X-Mailer: PHP\r\n"; $message ='<html> <head> <title>Message du site</title> <style> #conteneur { top:45%; width:500px; margin:0 auto; background:#FFFFFF; } #header{ width:500px; background:#FFFFFF; } #corps{ width:500px; background:#FFFFFF; font-family: Verdana, Arial, Helvetica, sans-serif; color:#000000; } #footer{ width:500px; height:2px; font-family:Verdana, Arial, Helvetica, sans-serif; color: #999999; font-size:9px; text-align:center; } </style> </head> <body> <div id="conteneur"> <div id="header"> <img src="https://d39f23jfph0ylk.cloudfront.net/moi.com.jpg" /> </div> <br><br> <div id="corps"> <p>'.$texte_message.'</p> </div> <br><br> <div id="footer">Ce mail a été adressé depuis le site association.....</div> </div> </body> </html>'; /****************************** * ajout d'un fichier joint ******************************/ $fich= $_FILES['joint']['tmp_name']; $taille = $_FILES['joint']['size']; $type = $_FILES['joint']['type']; $nom = $_FILES['joint']['name']; // ouverture du fichier joint uploadé en lecture $f = fopen($fich, "r") or die("ouverture du fichier $fich impossible ..."); // récupération du code du fichier joint $code =fread($f, $taille); // encodage standard $code = chunk_split(base64_encode($code)); /* dans le cas de l'envoi d'un fichier joint * il convient de séparer le corps du message du fichier * pour cela on utilise un identifiant de séparateur *******************************************************/ // identifiant de séparateur, en principe unique $limite = md5(uniqid(time() )); /* composition de l'en-tête du message : * le message textuel suivi du code du fichier *********************************************/ $entete .= "Content-Type: multipart/mixed;boundary=$limite\r\n\r\n"; $entete .= "--$limite\r\n"; $entete .= 'Content-Type: text/html; charset="utf8"'."\n"; $entete .= 'Content-Transfer-Encoding: 8bit'; $entete .= "$message\r\n"; $entete .= "--$limite\r\n"; $entete .= "Content-type:$type;name=$nom\r\n"; $entete .= "Content-transfer-encoding:base64\r\n\r\n"; $entete .= "$code\r\n"; $entete .= "--$limite--"; /************************** * envoi du message AVEC pj ***************************/ mail($mail,$sujet,"",$entete); ?>
Pouvez vous me dire où se situe mon erreur?
Merci d'avance
A voir également:
- Problème d'envoi email avec pièce jointe
- Pièce d'identité - Accueil - Services publics
- Comment creer un compte email - Guide
- 1 pièce jointe - Guide
- Votre envoi est en cours de transport vers son site de livraison. ✓ - Forum Consommation & Internet
- Je n'arrive pas a envoyer un mail avec piece jointe gmail ✓ - Forum Mail
6 réponses
Pour mettre une pièce jointe dans un envoi automatisé(avec la fonction mail()) il faut mettre l'image en ligne et envoyer le lien vers celle ci.
Moi,je veux sélectionner le fichier sur mon disque dur et l'envoyer,un peu comme on envoi un cv dans une entreprise
Bonjour
As-tu fait un echo $_FILES['joint']['tmp_name'] pour t'assurer que le nom est bien là où tu l'attends ?
S'il n'y a rien, peux-tu montrer le formulaire ?
As-tu fait un echo $_FILES['joint']['tmp_name'] pour t'assurer que le nom est bien là où tu l'attends ?
S'il n'y a rien, peux-tu montrer le formulaire ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci le père pour ta réponse!
Quand je fais un echo $_FILES['joint']['tmp_name'],effectivement je n'ai rien qui s'affiche à l'écran.
Voici mon formulaire:
Quand je fais un echo $_FILES['joint']['tmp_name'],effectivement je n'ai rien qui s'affiche à l'écran.
Voici mon formulaire:
<form name="diffusion" method="post" action="scriptphp/liste_diffusion.php"> <font size="3" face="Courier New, Courier, monospace">Destinataire :</font><br /><br /> <textarea name="email" id="mail" cols="30" rows="7" disabled="disabled"> <?php while ($user = mysql_fetch_assoc($verif)) { ?> <?php echo $user['mail']; ?> <?php } ?> </textarea> <br /><br /> <font size="3" face="Courier New, Courier, monospace">Message :</font><br /><br /> <textarea name="message" id="message" cols="30" rows="7"></textarea> <br /><br /><br /> <font size="3" face="Courier New, Courier, monospace">Fichier :</font> <input type="file" name="joint"/> <br /><br /> <br /><br /> <input type="submit" name="button" value="Envoyer"/> </form>