首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过HTML2PDF ()发送的HTML2PDF输出

通过HTML2PDF ()发送的HTML2PDF输出
EN

Stack Overflow用户
提问于 2017-05-01 01:16:06
回答 1查看 4.2K关注 0票数 1

我使用html2pdf将html页面转换为pdf,并希望将其作为邮件发送。使用下面的代码,我能够创建pdf并在页面上正确显示它(使用输出(‘name.pdf’))。我发现,为了在邮件中将这个pdf作为附件发送,我需要添加第二个参数为true或作为'S',下面是代码:

代码语言:javascript
复制
$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;
}

另外,我将sendmail设置为wamp。每当我访问页面时,我都会获得成功,邮件发送成功,现在我的问题是附件部分,因为我收到的电子邮件有身体和主题,但没有附件pdf。我在输出部分做错什么了吗?(两者都是真的和S给予相同的东西)。谢谢。PS:我使用雅虎作为smtp发送电子邮件和gmail接收。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-01 02:16:16

来自$pdf的html2pdf输出是blob (或者二进制?),它没有保存在服务器中。addAttachment()方法的第一个参数期望路径不是二进制路径。您应该调用的方法是addStringAttachment()。

代码语言:javascript
复制
$mail->addStringAttachment($pdf, 'file.pdf');
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43713049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档