<?php
namespace App\EventListener;
use App\Event\FeedbackEvent;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Part\DataPart;
class FeedbackListener
{
public function __construct(private MailerInterface $mailer, private ParameterBagInterface $parameterBag){}
public function onFeedbackCreated(FeedbackEvent $event)
{
$feedback = $event->getFeedback();
$email = (new TemplatedEmail())
->from(new Address('no-reply@idealofmed.bonzun.com', 'IdealOfMeD'))
->to($this->parameterBag->get('feedback_email_receiver'))
->subject('New Feedback')
->htmlTemplate('emails/feedback.html.twig')
->context([
'feedback' => $feedback,
]);
if(!empty($feedback->getFileName())){
$email->attachFromPath($this->parameterBag->get('kernel.project_dir').'/public/uploads/feedback/'.$feedback->getFileName());
}
try{
$this->mailer->send($email);
}catch (\Exception $e){
print_r($e->getMessage());
}
}
}