Générer et attacher un PDF dans un mail avec Symfony 3
Voici un petit tips qui permet de générer et envoyer un PDF par mail sans avoir à l’enregistrer en local. Rien de bien compliqué mais ca fait toujours gagné du temps quand on a le bon exemple. Pour effectue cet envoi j’utilise Knp Snappy pour générer le PDF et Swiftmailer qui est le classique sur Symfony pour l’envoi de mail.
J’ai mis le code à la suite à vous de l’organiser proprement dans vos projets …
$html = $this->renderView("AppBundle::content.html.twig", []);
$filename = 'filename.pdf';
$pdf = $this->get("knp_snappy.pdf")->getOutputFromHtml($html);
$message = \Swift_Message::newInstance()
->setSubject('...')
->setFrom('...')
->setTo('...');
$body = $this->templating->render('AppBundle::yourcontent.html.twig', []);
$message->setBody($body, 'text/html');
//join PDF
$attachement = \Swift_Attachment::newInstance($pdf, $filename, 'application/pdf' );
$message->attach($attachement);
$this->mailer->send($message);
Et voilà !