【问题标题】:using twig template for swiftmailer emal in slim framework在 slim 框架中使用 swiftmailer emal 的树枝模板
【发布时间】:2015-09-22 10:43:06
【问题描述】:

我已经用

初始化了我的超薄应用程序
    $app = new Slim([
    'view' => new Twig(),
    'templates.path' => INC_ROOT . '/app/views'
]);

$transport = Swift_MailTransport::newInstance();

$mailer = Swift_Mailer::newInstance($transport);

我的路线我有这个代码

$app->get('/test-email', function() use ($app, $mailer){

    // Here I'm fetching my email template from my template directory.
    $welcomeEmail = $app->view('emails/test_email.twig');

    // Setting all needed info and passing in my email template.
    $message = Swift_Message::newInstance('Wonderful Subject')
                    ->setFrom(array('email@seznam.cz' => 'Me'))
                    ->setTo(array('email2@seznam.cz' => 'You'))
                    ->setBody($welcomeEmail)
                    ->setContentType("text/html");


    $results = $mailer->send($message);

    // Print the results, 1 = message sent!
    print($results);

});

代码正确地将电子邮件发送到地址 results=1,但来自树枝模板的正文回显到屏幕而不是作为电子邮件发送。我想使用树枝模板来生成发送电子邮件的正文。

【问题讨论】:

  • 我将代码更改为$welcomeEmail = app->view()->render('emails/test_email.twig'); ,它似乎从树枝模板发送带有正文的电子邮件
  • 如果此评论解决了您的问题,请创建一个答案并将其标记为已接受。
  • 我创建了答案,但 Blackwood 删除了它
  • 你能为此在 Meta 上创建一个问题吗?问它有什么问题。
  • 顺便说一句,为什么我必须使用$app->view()->render而不使用$app->render

标签: email twig slim swiftmailer


【解决方案1】:

我在路由中编辑我的代码

$app->get('/test-email', function() use ($app, $mailer){

    // Here I'm fetching my email template from my template directory.
    $welcomeEmail = $app->view()->render('emails/test_email.twig');

    // Setting all needed info and passing in my email template.
    $message = Swift_Message::newInstance('Wonderful Subject')
                    ->setFrom(array('email@seznam.cz' => 'Me'))
                    ->setTo(array('email2@seznam.cz' => 'You'))
                    ->setBody($welcomeEmail)
                    ->setContentType("text/html");


    $results = $mailer->send($message);

    // Print the results, 1 = message sent!
    print($results);

});` 

现在代码正在从树枝模板发送带有正文的邮件。我认为 $app->view 将模板渲染到屏幕并 $app->view()->render 将其渲染到变量

【讨论】:

  • 请使用您问题上的编辑链接添加更多信息。 Post Answer 按钮应仅用于问题的完整答案。
  • 我认为这是一个完整的答案
  • 也许这行代码就是您要查找的内容,但答案也可以解释如何处理该行代码以及为什么它可以解决问题。
  • 这行得通,如何删除twig设置的内容类型。
猜你喜欢
  • 1970-01-01
  • 2013-08-07
  • 1970-01-01
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-22
  • 1970-01-01
相关资源
最近更新 更多