12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <?php
-
-
-
- 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;
-
-
- 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());
- }
-
-
-
- protected function sendEmailMessage($renderedTemplate, $fromEmail, $toEmail)
- {
-
- $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);
- }
- }
|