2017-05-01 8 views
0

html2pdf를 사용하여 html 페이지를 pdf로 변환하고 메일로 보내려고합니다. 아래의 코드를 사용하여 pdf 파일을 만들고 페이지에 제대로 표시 할 수있었습니다 (Output ('name.pdf') 사용). 또한HTML2PDF 출력이 PHPMailer()를 통해 전송되었습니다.

$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; 
} 

, 내가 설정 추가 : 내가 메일에 첨부 파일로이 PDF를 보내기 위해, 내가 진정한 나 'S'로 두 번째 인수를 추가 할 필요가 있음을 발견, 그래서 여기에 코드입니다 Wamp에 센드 메일. 페이지에 액세스 할 때마다 성공하고 메일이 성공적으로 전송됩니다. 이제 문제는 첨부 파일 부분입니다. 본문과 제목이 포함 된 전자 메일이 전송되기 때문에 문제는 없지만 첨부 파일이 없습니다. 출력 부분에 뭔가 잘못 되었습니까? (진실과 'S'는 같은 것을 준다). 감사. 추신 : 나는 이메일과 Gmail을 보내기 위해 smtp로 야후를 사용하고 있습니다.

답변

0

html2pdf의 $ pdf 출력은 blob (또는 바이너리?)이므로 서버에 저장되지 않습니다. addAttachment() 메소드의 첫 번째 매개 변수는 바이너리가 아닌 경로를 필요로합니다. 호출해야하는 메소드는 addStringAttachment()입니다.

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