2017-05-01 8 views
0

html2pdfを使用してhtmlページをpdfに変換しています。メールとして送信したいと思います。以下のコードを使用して、pdfを作成してページ上に適切に表示することができました(Output( 'name.pdf')を使用)。私はコードがあるので、ここで、メールの添付ファイルとして、このPDFファイルを送信するために、私は本当のようまたは「S」として第二引数を追加する必要があることがわかった:PHPMailer()経由で送信されたHTML2PDF出力

$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('[email protected]', 'sender'); 
$mail->addAddress('[email protected]', 'test'); 
$mail->Subject = 'TestMail'; 
$mail->addAttachment($pdf, 'file.pdf'); 
$mail->Body = 'TestMessage'; 

if($mail->send()) 
{ 
    echo 'success'; 
} 
else 
{ 
    echo $mail->ErrorInfo; 
} 

また、追加するために、私はセットwampのsendmail私がページにアクセスするたびに、私は成功し、メールは正常に送信されました。私の問題は添付ファイル部分です。私は本文と件名の電子メールを受け取っているので、添付ファイルはありません。出力部に何か問題がありましたか? (真実と「S」は同じものを与える)。ありがとう。 PS:yahooをsmtpとして使用して、電子メールとgmailを受信します。

答えて

0

html2pdfからの$ pdf出力はblob(またはバイナリ?)ですが、サーバーには保存されません。 addAttachment()メソッドの最初のパラメータは、バイナリではないパスを想定しています。 呼び出すべきメソッドはaddStringAttachment()です。

$mail->addStringAttachment($pdf, 'file.pdf'); 
関連する問題