Erreur à l'ouverture d'un PDF envoyé en pièe jointe en PHP
Posté : 07 janv. 2007, 18:40
Bonsoir,
Je sèche depuis ce matin. Je vous explique
J'ai un formulaire qui je génère un PDF à la volée après validation...là tout va bien.
J'appelle ensuite une fonction pour envoyer le PDF en tant que pièce jointe --> fonction mail().
A priori tout ce passe bien, je reçois le mail avec mon fichier PDF en pièce jointe, mais dès que j'essaie de l'ouvrir j'ai ce message :
Acrobat n'a pas pu ouvrir "courrier.pdf" car le type de fichier n'est pas pris en charge ou le fichier est endommagé (il a été envoyé en tant que pièce jointe et n'a pas pu être décodé).
Je vous joints le code de la fonction, si vous avez une explication
Je sèche depuis ce matin. Je vous explique
J'ai un formulaire qui je génère un PDF à la volée après validation...là tout va bien.
J'appelle ensuite une fonction pour envoyer le PDF en tant que pièce jointe --> fonction mail().
A priori tout ce passe bien, je reçois le mail avec mon fichier PDF en pièce jointe, mais dès que j'essaie de l'ouvrir j'ai ce message :
Acrobat n'a pas pu ouvrir "courrier.pdf" car le type de fichier n'est pas pris en charge ou le fichier est endommagé (il a été envoyé en tant que pièce jointe et n'a pas pu être décodé).
Je vous joints le code de la fonction, si vous avez une explication
function envoyermailpj($to, $subject, $message, $pj) {
$limite = "_parties_".md5(uniqid (rand()));
$mail_mime = "Date: ".date("l j F Y, G:i")."\n";
$mail_mime .= "MIME-Version: 1.0\n";
$mail_mime .= "Content-Type: multipart/mixed;\n";
$mail_mime .= " boundary=\"----=$limite\"\n\n";
$texte = "Ceci est un message au format MIME.\n";
$texte .= "------=$limite\n";
$texte .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$texte .= "Content-Transfer-Encoding: 7bit\n\n";
$texte .= $message;
$texte .= "\n\n";
$attachement = "";
// fichier 1
$attachement .= "------=$limite\n";
$attachement .= "Content-Type: application/pdf; name=\"courrier.pdf\"\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\"courrier.pdf\"\n\n";
//$attachement .= chunk_split(base64_encode($pj));
$attachement .= $pj;
$attachement .= "\n\n\n------=$limite\n";
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $texte.$attachement, $headers.$mail_mime);
}