8797 sujets

Développement web côté serveur, CMS

Bonjour,

j'ai un souci avec mon code pour envoyer un mail, le mail s'envoie bien avec une attach mais le fichier pdf est toujours le meme test.pdf alors qu'il a été changé dans le code

Est ce quelqu'un pourrait m'aiguiller?

merci bcp

voici mon code:

//-----------------------------------------------
//GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
//-----------------------------------------------

$frontiere = '-----=' . md5(uniqid(mt_rand()));

//-----------------------------------------------
//HEADERS DU MAIL
//-----------------------------------------------

$headers = 'From: "jeje" <'.$email_expediteur.'>'."\n";
$headers .= 'Return-Path: <'.$email_reply.'>'."\n";
$headers .= 'MIME-Version: 1.0'."\n";
$headers .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"';

//-----------------------------------------------
//MESSAGE TEXTE
//-----------------------------------------------
$message = 'This is a multi-part message in MIME format.'."\n\n";

$message .= '--'.$frontiere."\n";
$message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_texte."\n\n";

//-----------------------------------------------
//MESSAGE HTML
//-----------------------------------------------
$message .= '--'.$frontiere."\n";

$message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_html."\n\n";

$message .= '--'.$frontiere.'--'."\n";
//-----------------------------------------------
//PIECE JOINTE
//-----------------------------------------------

$message .= 'Content-Type: application/pdf; name="jeje78.pdf"'."\n";
$message .= 'Content-Transfer-Encoding: base64'."\n";
$message .= 'Content-Disposition:attachement; filename="jeje78"'."\n\n";





if(mail($destinataire,$sujet,$message,$headers))
{
echo 'Le mail a été envoyé';
}
else
{
echo 'Le mail n\'a pu être envoyé';
}
Modifié par jeje1978 (02 Apr 2008 - 09:16)
Pourquoi ne pas mettre l'extension du fichier PDF dans cette ligne ?
$message .= 'Content-Disposition:attachement; filename="jeje78"'."\n\n";
Excuse moi de poser cette question mais es-tu sûr d'appeler la page que tu modifies ? (rajoute toujours l'extension ".pdf" dans la valeur filename)

Si oui, remplace le fichier PDF par une image GIF par exemple et dis nous quoi !
Non ca fait exactement la meme chose, je recois un mail avec un fichier PDF dans lequel est indiqué test de message!
merci c'est resolu!

il ne manquait uniquement ce bout de code:


$message.= $message.'--'.$frontiere."\n";

bonne journée a tous!
Ton code ne semble pas fonctionner, je l'ai repris me suis envoyé un mail avec pièce-jointe et je ne reçois pas la pièce jointe ! Mon mail ne fait qu'1 ko au lieu de faire au minimum le poid de mon fichier joint qui fait 104 ko.
A quel endroit rajoutes-tu cette ligne ?

Cela a-t-il un sens de faire $message .= $message.'--'.$frontiere."\n"; ? Ce serait pas plutôt ceci $message .= '--'.$frontiere."\n"; ou (autre possibilité) ceci $message= $message.'--'.$frontiere."\n"; ?
voici mon code complet:

//-----------------------------------------------
//GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
//-----------------------------------------------

$boundary = 'aaaaaarzegrehtrghrthrthgerqherhteqhgreh';

//-----------------------------------------------
//HEADERS DU MAIL
//-----------------------------------------------

$headers = 'From: "jeje" <'.$email_expediteur.'>'."\n";
$headers .= 'Return-Path: <'.$email_reply.'>'."\n";
$headers .= 'MIME-Version: 1.0'."\n";
$headers .= 'Content-Type: multipart/mixed; boundary="'.$boundary.'"';

//-----------------------------------------------
//MESSAGE TEXTE
//-----------------------------------------------
$message = 'This is a multi-part message in MIME format.'."\n\n";

$message .= '--'.$boundary."\n";
$message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_texte."\n\n";

//-----------------------------------------------
//MESSAGE HTML
//-----------------------------------------------
$message .= '--'.$boundary."\n";

$message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_html."\n\n";

$message .= '--'.$boundary.'--'."\n";
//-----------------------------------------------
//PIECE JOINTE
//-----------------------------------------------
$message.= $message.'--'.$boundary."\n";
$message .= 'Content-Type: application/pdf; name="reussi1.pdf"'."\n";
$message .= 'Content-Transfer-Encoding: base64'."\n";
$message .= 'Content-Disposition:attachement; filename="reussi1.pdf"'."\n\n";


$message.=chunk_split(base64_encode(file_get_contents('reussi1.pdf')))."\n";

if(mail($destinataire,$sujet,$message,$headers))
{
echo 'Le mail a été envoyé';
}
else
{
echo 'Le mail n\'a pu être envoyé';
}
?>


bonnes receptions Alphonse
Tant mieux si ça fonctionne, n'hésite pas à le mentionner dans ton titre comme indiqué ci-contre : Résolu

Cependant, ton code ne fonctionne toujours pas chez moi... curieux Smiley cligne
Administrateur
Alphonse a écrit :
n'hésite pas à le mentionner dans ton titre


et à utiliser les balises [ code ], merci.