src/EventSubscriber/EmailMessengerSubscriber.php line 45

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Events;
  4. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Symfony\Component\Mailer\MailerInterface;
  7. use Symfony\Component\Mime\Address;
  8. class EmailMessengerSubscriber implements EventSubscriberInterface
  9. {
  10.     public function __construct(private MailerInterface $mailer, private string $fromEmail, private string $toEmail){}
  11.     public function onMemberRegistered($event): void
  12.     {
  13.         $email = (new TemplatedEmail())
  14.             ->from(new Address($this->fromEmail'ISTAMMER'))
  15.             ->to($this->toEmail)
  16.             ->subject(sprintf('Member Registered - %s %s'$event->getFirstName(), $event->getLastName()))
  17.             ->htmlTemplate('mail/join_us.html.twig')
  18.             ->context([
  19.                 "volunteer"=>$event
  20.             ])
  21.         ;
  22.         $this->mailer->send($email);
  23.     }
  24.     public function onSendContactForm($event):void
  25.     {
  26.         $email = (new TemplatedEmail())
  27.             ->from(new Address($this->fromEmail'ISTAMMER'))
  28.             ->to($this->toEmail)
  29.             ->subject(sprintf('A message from %s - '$event->getFullName()))
  30.             ->htmlTemplate('mail/contact_message.html.twig')
  31.             ->context([
  32.                 "mail"=>$event
  33.             ])
  34.         ;
  35.         $this->mailer->send($email);
  36.     }  
  37.     
  38.     public function onVolunteerRegister($event):void
  39.     {
  40.         $email = (new TemplatedEmail())
  41.             ->from(new Address($this->fromEmail'ISTAMMER'))
  42.             ->to($this->toEmail)
  43.             ->subject(sprintf('New volunteer member %s - '$event->getFirstName().' '$event->getLastName()))
  44.             ->htmlTemplate('mail/volunteer.html.twig')
  45.             ->context([
  46.                 "volunteer"=>$event
  47.             ])
  48.         ;
  49.         $this->mailer->send($email);
  50.     }      
  51.     public static function getSubscribedEvents(): array
  52.     {
  53.         return [
  54.             Events::MEMBER_REGISTERED => 'onMemberRegistered',
  55.             Events::VISITOR_SEND_CONTACT => 'onSendContactForm',
  56.             Events::VOLUNTEER_REGISTERED => 'onVolunteerRegister',
  57.         ];
  58.     }  
  59. }