【问题标题】:Symfony2 styled emails best practicesSymfony2 风格的电子邮件最佳实践
【发布时间】:2014-06-07 09:00:24
【问题描述】:

从 html 和 css 发送电子邮件的最佳做法是什么?我的项目中有很多邮件并且需要解决方案,这可以让我不必一次又一次地编写以下所有代码:

$msg = \Swift_Message::newInstance()
    ->setSubject('Test')
    ->setFrom('noreply@example.com')
    ->setTo('user@example.com')
    ->setBody($this->renderView('MyBundle:Default:email1.text.twig'));

$this->get('mailer')->send($msg);

【问题讨论】:

    标签: symfony html-email swiftmailer


    【解决方案1】:

    也许我的回答会有所帮助。有一个特殊的捆绑包Symfony2-MailerBundle 可以从模板呈现电子邮件正文,并允许在配置文件中设置发送参数,并且您不必在每次构建和发送电子邮件时都传递它们。

    【讨论】:

      【解决方案2】:

      将该代码设置为服务中的函数。函数就是为此而生的。

      要创建服务,请参阅下面的链接。

      How to inject $_SERVER variable into a Service

      注意:不要忘记将邮件服务作为参数注入!

      arguments: ["@mailer"]
      

      设置服务后;

      public function sendMail($data)
      {
          $msg = \Swift_Message::newInstance()
              ->setSubject($data['subject'])
              ->setFrom($data['from'])
              ->setTo($data['to'])
              ->setBody($this->renderView($data['view']));
      
          $this->mailer->send($msg);
      }
      

      你可以像这样调用你的服务;

      // this code below is just for setting the data
      $data = [
          'subject' => 'Hello World!', 
          'from' => 'from@address.com', 
          'to' => 'to@address.com', 
          'template' => 'blabla.html.twig'
      ];
      
      // this code below is the actual code that will save you
      $mailer = $this->get('my_mailer_service');
      $mailer->sendMail($data);
      

      【讨论】:

        猜你喜欢
        • 2011-07-08
        • 2010-11-19
        • 2011-02-16
        • 1970-01-01
        • 2018-05-17
        • 2012-02-24
        • 1970-01-01
        • 2011-06-17
        • 2012-06-27
        相关资源
        最近更新 更多