src/EventListener/FeedbackListener.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Event\FeedbackEvent;
  4. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  5. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  6. use Symfony\Component\HttpFoundation\File\File;
  7. use Symfony\Component\Mailer\MailerInterface;
  8. use Symfony\Component\Mime\Address;
  9. use Symfony\Component\Mime\Part\DataPart;
  10. class FeedbackListener
  11. {
  12.     public function __construct(private MailerInterface $mailer, private ParameterBagInterface $parameterBag){}
  13.     public function onFeedbackCreated(FeedbackEvent $event)
  14.     {
  15.         $feedback $event->getFeedback();
  16.         $email = (new TemplatedEmail())
  17.             ->from(new Address('no-reply@idealofmed.bonzun.com''IdealOfMeD'))
  18.             ->to($this->parameterBag->get('feedback_email_receiver'))
  19.             ->subject('New Feedback')
  20.             ->htmlTemplate('emails/feedback.html.twig')
  21.             ->context([
  22.                 'feedback' => $feedback,
  23.             ]);
  24.         if(!empty($feedback->getFileName())){
  25.             $email->attachFromPath($this->parameterBag->get('kernel.project_dir').'/public/uploads/feedback/'.$feedback->getFileName());
  26.         }
  27.         try{
  28.             $this->mailer->send($email);
  29.         }catch (\Exception $e){
  30.             print_r($e->getMessage());
  31.         }
  32.     }
  33. }