Posez votre question Signaler

Envoie d'un mail avec piece jointe en php [Résolu]

Lilouse64 99Messages postés lundi 1 mars 2010Date d'inscription 9 avril 2012 Dernière intervention - Dernière réponse le 2 mars 2010 à 11:12
Bonjour,
J'ai un soucis pour envoyer un mail avec mail(). Mon script doit pouvoir envoyer un mail contenant du texte et une image en pièce jointe. J'ai suivie le tuto disponible sur http://www.commentcamarche.net/faq/2761-langages-envoyer-un-mail-avec-piece-jointe et j'ai réussi après bien des tentatives infructueuse. Cette réussite à été fait dans un fichier test.php ne contenant que la base d'une page html et le script d'envois de mail en question.
Le problème vient que lorsque je place ce script à son bon emplacement, il me marque une erreur à la fonction mail. Ce nouveau fichier s'appelle sauvMailImage.php il est appelé à partir d'un bouton d'un formulaire et permet de créer une image avec la fonction imagettftext(). Je souhaite donc comme vous l'avez compris envoyer le résultat par mail et ensuite effacer mon image. Et c'est la ou ça coince.
Dans mon fichier test.php j'ai aussi essayé avec une l'image créé par sauvMailImage.php et aucun problème. Il y a peut être un élément dont je me sert pour imagettftext() qui empêche ensuite l'envoie du mail.
mon script pour l'envoie du mail présent dans les 2 fichiers (j'ai changé les adresses emails pour vous montrer le code):
<?php
// séparateur
$frontiere = md5(uniqid(mt_rand()));
// en tête
$headers = "From: \"no reply\" <noreply@nomDEntreprise.com> \n\r";
$headers .= "MIME-Version: 1.0 \n\r";
$headers .= "Content-Type: multipart/mixed; boundary=\"$frontiere\" \r\n\n";
// Le message
// Contenu
$message = "--".$frontiere."\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\" \r\n\n";
$contenu = "qu'es ce que ça fait si on met un truc ici ? \n\n";
$message .=$contenu;
// pièce jointe
$message .= "--".$frontiere."\n";
$pieceJointe = "Content-Type: image/png; name=\"./Images/sauv/temp.png\" \r\n";
$pieceJointe .= "Content-Transfer-Encoding: base64 \r\n";
$pieceJointe .= "Content-Disposition:attachement; filename=\"banniere.png\" \r\n\n";
$pieceJointe .= chunk_split(base64_encode(file_get_contents("./Images/sauv/temp.png")))."\n\n";
$message .=$pieceJointe;
// Fin du message
$message .= "--".$frontiere."--";
// Envoie
mail("prenom@nomDEntreprise.com", "Votre Image",$message,$headers);
mail("pseudo@gmail.com", "Votre Image",$message,$headers);
?>
Merci d'avance pour l'aide que vous pourrez m'apporter.
EDIT : l'erreur que j'ai est : "parse error " sur la premiere ligne mail("prenom@nomDEntreprise.com", "Votre Image",$message,$headers);
Lire la suite 
Réponse
+1
moins plus
Bon en faite je viens de trouver, il y avait une légère différence entre les 2, une parenthèse qui trainé d'un ancien if que j'avais supprimé dans un fichier et pas dans l'autre.

Problème résolue
Ajouter un commentaire
Ce document intitulé «  Envoie d'un mail avec piece jointe en php  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.