SwiftMailer附件pdf由Dompdf动态生成



首先获得任何帮助:(

我在Symfony 4.4 Framework上工作,我让控制器生成PDF并通过邮件附件发送,但我想直接在控制器上发送PDF,而不是在系统上发送库存文件。发送并删除它们。

$pdf = new Dompdf( $pdfOptions );
$html = $this->render('recommendations/synthesePdf.html.twig', [
'products' => $products,
'recommendations' => $recommendations,
'customer' => $customer,
'cultureTotal' => $cultureTotal
]);
$pdf->loadHtml( $html->getContent() );
$pdf->setPaper('A4', 'portrait');
$pdf->render();
//-- SEND PDF TO USER
$message = (new Swift_Message('Nouvelle recommendation disponible'))
->setFrom('send@example.com')
//->setTo( $customer->getEmail() )
->setTo( '***' )
->setBody(
$this->renderView(
'emails/recommendation.html.twig', [
'identity' => $customer->getIdentity()
]
),
'text/html'
)
->attach( Swift_Attachment::fromPath( $pdf->output() ) )
;
$mailer->send($message);

嗨,使用$pdf->output/$pdf->getHtml,但如果你有任何建议,它不起作用:(

Thx

您可以使用Symfony Like的FileSystem组件=>

  1. 安装

    composer require symfony/filesystem

  2. 使用

    use SymfonyComponentFilesystemFilesystem;
    $filesystem = new Filesystem();
    
  3. 删除文件

    $filesystem->remove(['/path/to/file']);
    

在您的情况下,您可以保存文件pdf,然后发送它,如果发送了邮件,您可以删除文件

Doc:文件系统组件

最新更新