Я пытаюсь создать сообщение SwiftMailer с помощью Symfony 2.8 и SwiftMailer Bundle 2.5, где я отправляю PDF-файл с простым HTML-сообщением по адресу. Я могу отправлять электронные письма, однако во всем примере кода используются такие методы, как addPart () и attach (), которых нет в списке методов, предоставленном Swift_Message
, и я не могу найти ни одного примера, который использует что-либо еще.
Я создаю PDF-файл из визуализированного шаблона Twig, а затем создаю сообщение, чтобы прикрепить его к
$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'
);
Приложение: $attachment = \Swift_Attachment::newInstance($pdf, $pdf_name, 'application/pdf');
Оба
$message->addPart($attachment, $contentType = "application/pdf", $charset = null);
а также
$message->attach(\Swift_Attachment::fromPath('/path/to/image.jpg')->setFilename('myfilename.jpg'));
методов просто не существует.
Как ни странно, в выделенном сообщении говорится
Method 'attach' not found in class \Swift_Mime_MimePart less...
Referenced method is not found in subject class.
Но мне не удалось выяснить, откуда это происходит и как я могу правильно вызвать класс сообщения, учитывая, что класс Swift_Mime_MimePart
находится на несколько уровней выше в иерархии классов и никогда не вызывается или не упоминается непосредственно в коде.
$message
до момента, когда вы пытаетесь запустить методattach()
? - person Augwa   schedule 15.04.2017attach()
. Должен ли быть промежуточный код? - person G_V   schedule 15.04.2017pretty much straight
, что не совсем так. Я на 99,9% уверен, что если вы разместите весь запрашиваемый код, ошибка обнаружится сама собой. - person Augwa   schedule 15.04.2017$this->renderView( // app/Resources/views/Emails/registration.html.twig 'Emails/registration.html.twig', array('name' => "test") ),
, чтобы на самом деле имел шаблон для тестирования, и переместил присоединяемую часть кода за пределы создания сообщения, поскольку он не работал, как показано в примерах ниже. В остальном это точно так же, как в примере с точки зрения количества кода. Нет пропущенных шагов. - person G_V   schedule 15.04.2017$message = \Swift_Message::newInstance()->attach(...);
, это будет ошибка или нет? - person Augwa   schedule 15.04.2017::newInstance
вместо результирующего объекта заставляет интерпретатор искать эти методы в родительском классе, где вызываетсяparent::_construct()
? Теперь код вроде работает. - person G_V   schedule 15.04.2017