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); } } 注意:您将必须在控制器中呈现您的模板,并传递给此电子邮件功能,或注入模板服务并在您的服务中呈现. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |