添加附件文件时出现问题

时间:2011-04-19 03:55:22

标签: php email

当我尝试发送带附件文件的电子邮件时,我遇到了问题,我只是收到带有空白附件的邮件,我如何解决它。这是我的代码:

$html2pdf = new HTML2PDF("P","A4", "fr");
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$to = "example@yahoo.com"; 
$subject = "Voucher Mediskon";
$random_hash = md5(date("r", time()));
$headers = "From: Admin Mediskon<admin@" . $domain . ">\r\nReply-To: admin@" . $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 );

2 个答案:

答案 0 :(得分:1)

不要直接使用PHP的邮件功能。这是不安全和不灵活的。另外,你正在重新发明轮子。以下是两个支持HTML和文件附件的优秀电子邮件库:

答案 1 :(得分:1)

  

我收到空白附件的消息

所以问题不在于电子邮件,也不在于将文件附加到电子邮件的过程。

您是否查看了邮件中的原始数据以查看附件是否为空长度?

您是否尝试将生成的PDF写入文件以检查其内容?