J'essaye de créer un message SwiftMailer en utilisant Symfony 2.8 et le SwiftMailer Bundle 2.5, où j'envoie un PDF avec un simple message HTML à une adresse. Je peux envoyer des emails, cependant tout le code d'exemple utilise des méthodes telles que addPart() et attach() qui n'existent pas dans la liste des méthodes donnée par Swift_Message
et je ne trouve aucun exemple qui utilise autre chose.PHP Symfony 2.8 Swiftmailer bundle 2.5, créer un message avec pièce jointe PDF à partir du code
créer un PDF à partir d'un modèle Twig rendu, puis créer un message pour l'attacher à
$pdf = $this->get('knp_snappy.pdf')->getOutputFromHtml($response);
$message = \Swift_Message::newInstance()
->setSubject('Hello Email')
->setFrom('[email protected]')
->setTo('[email protected]')
->setBody(
$this->renderView(
// app/Resources/views/Emails/registration.html.twig
'Emails/registration.html.twig',
array('name' => "test")
),
'text/html'
);
Pièce jointe: $attachment = \Swift_Attachment::newInstance($pdf, $pdf_name, 'application/pdf');
deux
$message->addPart($attachment, $contentType = "application/pdf", $charset = null);
et
$message->attach(\Swift_Attachment::fromPath('/path/to/image.jpg')->setFilename('myfilename.jpg'));
méthodes n'existent tout simplement pas.
Étrangement, le message fort dit
Method 'attach' not found in class \Swift_Mime_MimePart less...
Referenced method is not found in subject class.
Mais je l'ai pas eu de succès déterminer d'où cela vient ou comment je peux appeler la classe de message correctement étant donné que la classe Swift_Mime_MimePart
est vers le haut plusieurs couches la hiérarchie de classe et n'est jamais appelée ou référencée directement dans le code.
Je me sens comme il ya un code manquant ici qui montrera le problème. Pouvez-vous inclure tout le code du point où vous créez la variable '$ message' au point où vous essayez d'exécuter la méthode' attach() '? – Augwa
@Augwa - Il est copié à peu près directement à partir de la Swiftmailer se docs http://swiftmailer.org/docs/messages.html c'est pourquoi je suis tellement confus. Je crée le message, puis j'essaie de 'joindre() 'tout de suite. Devrait-il y avoir du code entre? –
J'ai également essayé de réinstaller le bundle dans son intégralité. Je pourrais essayer de revenir à une version plus ancienne pour voir si cela corrige, mais beaucoup d'autres paquets dépendent de celui-ci comme FOSUserBundle donc je pense que cela viendrait avec un ensemble de problèmes à lui seul. –