Symfony 3 — SwiftMail — просмотр для тела

#function #symfony #email #static

#функция #symfony #Адрес электронной почты #статический

Вопрос:

Я хочу отправить n писем с помощью swiftmail на symfony 3.4, я бы использовал -> setBody ($ this-> RenderView («….») для содержимого почты.

Только у меня две проблемы. Во-первых, моя функция, использующая SwiftMail, является статической функцией, поэтому вы должны использовать self :: вместо $ this-> , но self :: RenderView не работает.

С другой стороны, я не понимаю, в какой форме я должен поместить свою ссылку, указывающую, я нахожу все в интернете, и я не знаю, что взять

На данный момент я :

 $transport = Swift_SmtpTransport::newInstance();

        // Create the Mailer using your created Transport
        $mailer = new Swift_Mailer($transport);

        $message = Swift_Message::newInstance()
                        ->setSubject($subject)
                        ->setFrom(array($mailFrom => 'aliasTest'))
                        ->setTo($emailAdress)
                        ->setCharset('utf-8')
                        ->setContentType('text/html')
                        ->setBody("hello"); // ->setBody(self::renderView(" ???")

        $mailer->send($message);
  

Ответ №1:

Я бы пошел одним из двух способов здесь:

  • сделайте функцию нестатичной в контроллере / возможно, извлеките ее в сервис
  • предоставьте тело или средство визуализации в качестве параметра функции.

Если вы удалите ее из контроллера / a, можно будет использовать среду twig ( Twig_Environment $twig ) ( $twig->render('templatename', $paramarray) ).

(Отказ от ответственности: Twig_Environment может называться по-другому / иметь правильное пространство имен в вашей версии twig ; o))