Php 从模型和模板发送电子邮件

Php 从模型和模板发送电子邮件,php,symfony1,model,symfony-1.4,Php,Symfony1,Model,Symfony 1.4,如果我想在symfony中使用SwiftMailer发送电子邮件,那么我必须: $message = $this->getMailer()->compose( array('user@gmail.com' => 'user'), $affiliate->getEmail(), 'Jobeet affiliate token', body ); $this->getMailer()->send($

如果我想在symfony中使用SwiftMailer发送电子邮件,那么我必须:

$message = $this->getMailer()->compose(
      array('user@gmail.com' => 'user'),
      $affiliate->getEmail(),
      'Jobeet affiliate token',
      body
    );

    $this->getMailer()->send($message);

但这在模板和模型中都不起作用(我想为此创建函数)。

我不建议使用模板发送邮件-在模板中放置链接并调用操作以发送邮件。。。您可以从模型发送,但我也不建议您这样做,因为在模型内部使用
sfContext::getInstance()
是一种非常糟糕的做法,因为它会使模型类依赖于上下文。因此,您的模型类无法进行单元测试,因为它需要一个上下文来工作


您需要当前sfContext的实例才能执行此操作。。。我建议在创建模型时将其作为参数传递

Realy Realy不建议在模板内发送电子邮件!请理解,由于symfony实现了MVC,您不应该从模板或模型发送电子邮件。如果您想这样做,可能有一些方法(例如,使邮件程序在您的模板中可用),但它会变得丑陋!你说“不行”是什么意思?你会犯什么错误?