123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php
- /*
- * This file is part of the FOSUserBundle package.
- *
- * (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace FOS\UserBundle\Mailer;
- use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface;
- use Symfony\Component\Routing\RouterInterface;
- use FOS\UserBundle\Model\UserInterface;
- use FOS\UserBundle\Mailer\MailerInterface;
- /**
- * @author Thibault Duplessis <thibault.duplessis@gmail.com>
- */
- class Mailer implements MailerInterface
- {
- protected $mailer;
- protected $router;
- protected $templating;
- protected $parameters;
- public function __construct($mailer, RouterInterface $router, EngineInterface $templating, array $parameters)
- {
- $this->mailer = $mailer;
- $this->router = $router;
- $this->templating = $templating;
- $this->parameters = $parameters;
- }
- public function sendConfirmationEmailMessage(UserInterface $user)
- {
- $template = $this->parameters['confirmation.template'];
- $url = $this->router->generate('fos_user_registration_confirm', array('token' => $user->getConfirmationToken()), true);
- $rendered = $this->templating->render($template, array(
- 'user' => $user,
- 'confirmationUrl' => $url
- ));
- $this->sendEmailMessage($rendered, $this->parameters['from_email']['confirmation'], $user->getEmail());
- }
- public function sendResettingEmailMessage(UserInterface $user)
- {
- $template = $this->parameters['resetting.template'];
- $url = $this->router->generate('fos_user_resetting_reset', array('token' => $user->getConfirmationToken()), true);
- $rendered = $this->templating->render($template, array(
- 'user' => $user,
- 'confirmationUrl' => $url
- ));
- $this->sendEmailMessage($rendered, $this->parameters['from_email']['resetting'], $user->getEmail());
- }
- /**
- * @param string $renderedTemplate
- * @param string $toEmail
- */
- protected function sendEmailMessage($renderedTemplate, $fromEmail, $toEmail)
- {
- // Render the email, use the first line as the subject, and the rest as the body
- $renderedLines = explode("\n", trim($renderedTemplate));
- $subject = $renderedLines[0];
- $body = implode("\n", array_slice($renderedLines, 1));
- $message = \Swift_Message::newInstance()
- ->setSubject($subject)
- ->setFrom($fromEmail)
- ->setTo($toEmail)
- ->setBody($body);
- $this->mailer->send($message);
- }
- }
|