2011-04-19 1 views
0

J'ai un problème alors que je tente d'envoyer un courriel avec fichier joint, je viens de passer le message avec pièce jointe vide, comment je peux le réparer. Voici mon code:Email Problème lors de fichiers de pièces jointes add

$html2pdf = new HTML2PDF("P","A4", "fr"); 
$html2pdf->writeHTML($content, isset($_GET['vuehtml'])); 
$to = "[email protected]"; 
$subject = "Voucher Mediskon"; 
$random_hash = md5(date("r", time())); 
$headers = "From: Admin Mediskon<[email protected]" . $domain . ">\r\nReply-To: [email protected]" . $domain; 
$headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\""; 
$attachment = chunk_split(base64_encode($html2pdf->Output("", "S"))); 
ob_start(); 
?> 
--PHP-mixed-<?php echo $random_hash; ?> 
Content-Type: multipart/alternative; boundary="PHP-alt-<?php echo $random_hash; ?>" 
--PHP-alt-<?php echo $random_hash; ?> 
Content-Type: text/plain; charset="iso-8859-1" 
Content-Transfer-Encoding: 7bit 
--PHP-alt-<?php echo $random_hash; ?> 
Content-Type: text/html; charset="iso-8859-1" 
Content-Transfer-Encoding: 7bit 

<h2>Terimakasih telah membeli voucher kami. Mediskon</h2> 
<p>Silakan <b>unduh (download)</b> voucher pada <b>attachment</b> yang kami kirim.</p> 
--PHP-alt-<?php echo $random_hash; ?>-- 
--PHP-mixed-<?php echo $random_hash; ?> 
Content-Type: application/pdf; name="voucher.pdf" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment 
<?php echo $attachment; ?> 
--PHP-mixed-<?php echo $random_hash; ?>-- 
<?php 
$message = ob_get_clean(); 
$mail_sent = @mail($to, $subject, $message, $headers); 
+0

Peut-être nettoyer votre poste un peu, c'est assez difficile à lire tel quel. –

+0

Si ce n'est pas dans le but d'apprendre le fonctionnement du courrier MIME, pensez à utiliser une bibliothèque. –

Répondre

1

N'utilisez pas la fonction de messagerie de PHP directement. C'est insécure et inflexible. De plus, vous réinventez la roue. Voici deux bibliothèques grands e-mail qui prennent en charge les pièces jointes HTML et fichiers:

+0

Je ne suis pas d'accord, c'est très flexible - et permet donc aux gens d'écrire du code non sécurisé en l'utilisant. Certes, si vous ne savez pas ce que vous faites, ces emballages peuvent rendre la vie un peu moins dangereuse. – symcbean

+0

Hmmm. Par inflexible, je voulais dire que l'API était inadéquate pour l'ajout de pièces jointes, etc. Oui, vous pouvez simplement faire passer tout ce que vous voulez dans 'mail()', mais il est facile de se faire trébucher. – Treffynnon

+0

Peut-être que je vais utiliser la fonction de messagerie pour le courrier électronique simple et il est bon d'apprendre à ce sujet .. –

1

je reçois tout message avec pièce jointe vide

Le problème n'est pas avec l'e-mail, ni avec le processus de joindre le fichier à l'e-mail.

Avez-vous regardé les données brutes dans le message pour voir si la pièce jointe est de longueur nulle?

Avez-vous essayé d'écrire le PDF généré dans un fichier pour vérifier son contenu?

+0

oui je le fais, mais parfois je don ne pas obtenir la pièce jointe du tout ... donc j'ai une conclusion il y a erreur dans mon code ... pourriez-vous le réparer ou mon code est correct ou pas mal dans mon code ... –

Questions connexes