src/EventSubscriber/EmailMessengerSubscriber.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Event\MemberRegisteredEvent;
  4. use App\Events;
  5. use App\Security\EmailVerifier;
  6. use Fbeen\SettingsBundle\Service\SettingsHelper;
  7. use Fbeen\SettingsBundle\Service\SettingsInterface;
  8. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. use Symfony\Component\Mailer\Mailer;
  11. use Symfony\Component\Mailer\MailerInterface;
  12. use Symfony\Component\Mime\Address;
  13. class EmailMessengerSubscriber implements EventSubscriberInterface
  14. {
  15.     public function __construct(
  16.         private MailerInterface $mailer
  17.         private SettingsInterface $settings,
  18.         private EmailVerifier $emailVerifier
  19.         private string $toEmail
  20.         private string $fromEmail)
  21.     {
  22.         $this->emailVerifier $emailVerifier;
  23.     }
  24.     public function onMemberRegistered(MemberRegisteredEvent $event): void
  25.     {
  26.         $user $event->getUser();
  27.         // generate a signed url and email it to the user
  28.         $this->emailVerifier->sendEmailConfirmation('app.verify_registration'$user,
  29.             (new TemplatedEmail())
  30.                 ->from(new Address($this->fromEmail$this->settings->getSetting('app_name')))
  31.                 ->to($user->getEmail())
  32.                 ->subject('Please Confirm your Email')
  33.                 ->htmlTemplate('registration/confirmation_email.html.twig')
  34.                 ->context([
  35.                     //'expiration_date' => new \DateTime('+7 days'),
  36.                     'user' => $user,
  37.                     'username' => $user->getUsername(),
  38.                 ])
  39.         );
  40.     }    
  41.     public static function getSubscribedEvents(): array
  42.     {
  43.         return [
  44.             Events::MEMBER_REGISTERED => 'onMemberRegistered',
  45.         ];
  46.     }
  47. }