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

Lilouse64 99 Messages postés lundi 1 mars 2010Date d'inscription 9 avril 2012 Dernière intervention - 2 mars 2010 à 10:42 - Dernière réponse : Lilouse64 99 Messages postés lundi 1 mars 2010Date d'inscription 9 avril 2012 Dernière intervention
- 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);
Afficher la suite 

1 réponse

Lilouse64 99 Messages postés lundi 1 mars 2010Date d'inscription 9 avril 2012 Dernière intervention - 2 mars 2010 à 11:12
+1
Utile
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
Cette réponse vous a-t-elle aidé ?