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

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 如何从Symfony2服务类发送邮件?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我可以成功使用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="Acme\DemoBundle\Service\Hello">
    <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);
    }
}

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

脚本宝典总结

以上是脚本宝典为你收集整理的php – 如何从Symfony2服务类发送邮件?全部内容,希望文章能够帮你解决php – 如何从Symfony2服务类发送邮件?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。