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

Signaler
Messages postés
99
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
9 avril 2012
-
Messages postés
99
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
9 avril 2012
-
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 https://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);

1 réponse

Messages postés
99
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
9 avril 2012
8
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
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci