<?php
namespace App\Controller\Front;
use App\Form\ContactType;
use Symfony\Component\Mime\Email;
use Symfony\Component\Mime\Address;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
/**
* @Route("/contact", name="app_main_")
*/
class ContactController extends AbstractController
{
/**
* @Route("/", name="contact", methods={"GET", "POST"})
*/
public function index(Request $request, MailerInterface $mailer): Response
{
$form = $this->createForm(ContactType::class);
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()) {
$contactFormData = $form->getData();
// $message = (new Email())
// // ->from($contactFormData['email'])
// ->from(new Address($contactFormData['email'], $contactFormData['name']))
// ->to('breizhankou@free.fr')
// ->subject('[TGS Concept] Message du site web')
// ->html('<p><u>Expéditeur :</u> '.$contactFormData['email'].
// '</p><p><u>Message :</u> '.\PHP_EOL.$contactFormData['message'].'</p>',
// 'utf-8')
// ;
$message = (new TemplatedEmail())
->from(new Address($contactFormData['email'], $contactFormData['name']))
->to('terrygotteri@tgsconcept.com')
->cc('terry.gotteri@gmail.com')
->bcc('breizhankou@free.fr', 'contact@tgsconcept.fr', 'terry@tgsconcept.fr', 'kristof@tgsconcept.fr', 'kristof.rialland@gmail.com', 'christophe.rialland@free.fr')
// ->replyTo($contactFormData['email'])
->subject('[TGS Concept] Message du site web')
->htmlTemplate('front/contact/email.html.twig')
->context([
'name' => $contactFormData['name'],
'courriel' => $contactFormData['email'],
'message' => $contactFormData['message'],
])
;
try {
$mailer->send($message);
} catch (TransportExceptionInterface $error) {
// some error prevented the email sending; display an error message or try to resend the message
dd($error);
}
$this->addFlash('success', 'Votre message a bien été envoyé !');
return $this->redirectToRoute('app_main_contact', [], Response::HTTP_SEE_OTHER);
}
return $this->render('front/contact/index.html.twig', [
'form' => $form->createView()
]);
}
}