[英]HTML2PDF output sent through PHPMailer()
我正在使用html2pdf将html页面转换为pdf,我想将其作为邮件发送。 使用下面的代码,我能够创建pdf并将其正确显示在页面上(使用Output('name.pdf'))。 我发现为了将此pdf作为附件发送到邮件中,我需要添加第二个参数为true或'S',因此代码如下:
$pdf = '';
try
{
// init HTML2PDF
$html2pdf = new HTML2PDF('P', 'A4', 'en', true, 'UTF-8', array(0, 0, 0, 0));
// display the full page
$html2pdf->pdf->SetDisplayMode('fullpage');
// get the HTML
ob_start();
include('invoice_html.php');
$content = ob_get_clean();
// convert
$html2pdf->writeHTML($content);
// send the PDF
$pdf = $html2pdf->Output('', true);
}
catch(HTML2PDF_exception $e) {
echo $e;
exit;
}
$mail = new PHPMailer();
$mail->setFrom('senderSMTP@yahoo.com', 'sender');
$mail->addAddress('test@gmail.com', 'test');
$mail->Subject = 'TestMail';
$mail->addAttachment($pdf, 'file.pdf');
$mail->Body = 'TestMessage';
if($mail->send())
{
echo 'success';
}
else
{
echo $mail->ErrorInfo;
}
另外,要添加,我在wamp上设置了sendmail。 每当我访问该页面时,我都成功了,并且邮件发送成功了,现在我的问题是附件部分,因为我收到的邮件带有正文和主题,但是没有附件pdf。 我在输出部分做错了吗? (true和'S'表示相同的意思)。 谢谢。 PS:我使用Yahoo作为smtp发送电子邮件和gmail进行接收。
html2pdf的$ pdf输出是一个Blob(或二进制?),它没有保存在您的服务器中。 addAttachment()方法的第一个参数期望路径不是二进制的。 您应该调用的方法是addStringAttachment()。
$mail->addStringAttachment($pdf, 'file.pdf');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.