Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHPMailer()发送的HTML2PDF输出_Php_Html2pdf - Fatal编程技术网

通过PHPMailer()发送的HTML2PDF输出

通过PHPMailer()发送的HTML2PDF输出,php,html2pdf,Php,Html2pdf,我正在使用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,

我正在使用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;
}
另外,要添加,我将sendmail设置为wamp。每当我访问页面时,我都会成功发送邮件,现在我的问题是附件部分,因为我收到的是带有正文和主题的电子邮件,但没有附件pdf。我在输出部分做错了什么吗?(true和'S'给出的是相同的东西)。谢谢
PS:我使用yahoo作为smtp发送电子邮件和gmail接收。

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

$mail->addStringAttachment($pdf, 'file.pdf');