WRInaute occasionnel
Bonjour,
J'ai un script qui génère des bons de livraison (BL) en PDF ou en HTML (suivant un paramètre html=0 ou 1 dans l'url)
Après avoir épluché quelques posts, j'ai mis en place, en bas du BL HTML une fonctionnalité qui permet de saisir une adresse mail pour envoyer le BL au format PDF en PJ.
Le mail parvient bien au destinataire, avec une PJ au format PDF: mais ce fichier pdf joint est vide (ou réduit à 0 je ne sais pas): il fait 0 ko et ne peut être ouvert pas Adobe Reader.
J'ai tenté plusieurs soluces, mais en vain.
Explications techniques:
genrer_BL.php génère le BL au format DF ou HTML. Le format HTML affiche en plus un formulaire pour saisir l'adresse mail.
envoyer_mailBL.php reçoit le $_POST, traite l'adresse, envoie le mail avec ça comme code:
Avec $_POST['num_BT'] et $_POST['id_course'] qui étaient en type="hidden" dans le formulaire.
generer_BVL.php génère le PDF avec mPDF (super d'ailleurs). Lorsqu'il est appelé avec le paramètre pj, il ressort le PDF avec ça:
Où peut se trouver mon souci ?
J'ai un script qui génère des bons de livraison (BL) en PDF ou en HTML (suivant un paramètre html=0 ou 1 dans l'url)
Après avoir épluché quelques posts, j'ai mis en place, en bas du BL HTML une fonctionnalité qui permet de saisir une adresse mail pour envoyer le BL au format PDF en PJ.
Le mail parvient bien au destinataire, avec une PJ au format PDF: mais ce fichier pdf joint est vide (ou réduit à 0 je ne sais pas): il fait 0 ko et ne peut être ouvert pas Adobe Reader.
J'ai tenté plusieurs soluces, mais en vain.
Explications techniques:
genrer_BL.php génère le BL au format DF ou HTML. Le format HTML affiche en plus un formulaire pour saisir l'adresse mail.
envoyer_mailBL.php reçoit le $_POST, traite l'adresse, envoie le mail avec ça comme code:
Code:
// Destinataire du mail
$destination = $_POST['mail_dest_bl'];
// Expediteur du mail
$from_mail = 'monadresse@mondomaine.com';
$from_name = "Prénom NOM";
// sujet du mail
$sujet = '[Mon entreprise] - votre BL';
// Chaine permettant de différencier les différentes parties du mail
$uid = md5(uniqid(time()));
$message = "Bonjour,\nVous trouverez en pièce jointe le BL demandé au format PDF.\n";
$message .= $signature_mail;
// Traitement pour attacher une PJ
// D'abord on lit le fichier
$fichier = 'generer_BL.php?id_course='.$_POST['id_course'].'&pj=BL-'.$_POST['num_BT'].'.pdf&html=0';
$attachement = chunk_split(base64_encode($fichier));
$header = "From: ".$from_name." <".$from_mail.">\r\n";
$header .= "Reply-To: ".$from_mail."\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: application/pdf; name=\"BL-".$_POST['num_BT'].".pdf\"\r\n";
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"BL-".$_POST['num_BT'].".pdf\"\r\n\r\n";
$header .= $attachement."\r\n\r\n";
$header .= "--".$uid."--";
// enfin on envoi le mail
$is_sent = @mail($destination, $sujet, "", $header);
if ($is_sent)
{
header('Location: generer_BL.php?id_course='.$_POST['id_course'].'&html=1&mail=ok');
}
else echo 'Envoi raté:<br />'.$headers;
generer_BVL.php génère le PDF avec mPDF (super d'ailleurs). Lorsqu'il est appelé avec le paramètre pj, il ressort le PDF avec ça:
Code:
if (isset($_GET['pj']))
$livraison_mpdf -> Output('', 'S');
else
$livraison_mpdf -> Output();
exit;
Où peut se trouver mon souci ?