加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何从Symfony2服务类发送邮件?

发布时间:2020-12-13 13:12:50 所属栏目:PHP教程 来源:网络整理
导读:我可以成功使用followig代码从控制器发送电子邮件: $message = Swift_Message::newInstance() -setSubject('Hello Email') -setFrom('send@example.com') -setTo('recipient@example.com') -setBody($this-renderView('HelloBundle:Hello:email.txt.twig',
我可以成功使用followig代码从控制器发送电子邮件:
$message = Swift_Message::newInstance()
    ->setSubject('Hello Email')
    ->setFrom('send@example.com')
    ->setTo('recipient@example.com')
    ->setBody($this->renderView('HelloBundle:Hello:email.txt.twig',array('name' => $name)))
;
$this->get('mailer')->send($message);

我如何修改代码以从服务类使用它?

您的服务具有外部依赖性,特别是邮件服务.您可以自己注入服务容器,也可以注入邮件服务.

如果你的服务只需要邮件服务,没有别的,我建议只注册邮件服务.

以下是如何配置DIC以使用setter注入邮件服务:

<service id="my.service" class="AcmeDemoBundleServiceHello">
    <call method="setMailer">
        <argument type="service" id="mailer" />
    </call>
</service>

在你的课堂上,写你的设定者:

class Hello
{
    protected $mailer;

    public function setMailer($mailer)
    {
        $this->mailer = $mailer;
    }

    public function sendEmail()
    {
        $message = Swift_Message::newInstance()
            ->setSubject('Hello Email')
            ->setFrom('send@example.com')
            ->setTo('recipient@example.com')
            ->setBody($this->renderView('HelloBundle:Hello:email.txt.twig',array('name' => $name)))
        ;
        $this->mailer->send($message);
    }
}

注意:您将必须在控制器中呈现您的模板,并传递给此电子邮件功能,或注入模板服务并在您的服务中呈现.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读