src/Controller/MailController.php line 36

Open in your IDE?
  1. <?php
  2. /*
  3. * Ce fichier est la propriété de l'association (c) Projets Métiers
  4. *
  5. * (c) crée par Jean-Marc CATALA <jeanmmarccatala@gmail.com>
  6. *
  7. */
  8. namespace App\Controller;
  9. use App\Service\EmailService;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. use Symfony\Component\Mailer\MailerInterface;
  14. use Symfony\Component\Mime\Email;
  15. use App\Entity\contactMail;
  16. use App\Form\contactMailType;
  17. use Symfony\Component\Mailer\Transport\Smtp\EsmtpTransport;
  18. use function dd;
  19. class MailController extends AbstractController
  20. {
  21. /**
  22. * @var EmailService
  23. */
  24. private $emailService;
  25. /**
  26. * @Route("/contact", name="contact")
  27. */
  28. public function contactAction(Request $request, EmailService $emailService)
  29. {
  30. $mail = new contactMail();
  31. $form = $this->get('form.factory')->create(contactMailType::class, $mail);
  32. $request = $this->get('request_stack')->getCurrentRequest();
  33. $message = 'vide';
  34. // On vérifie qu'elle est de type POST
  35. if ($request->getMethod() == 'POST') {
  36. $form->handleRequest($request);
  37. if ($form->isValid()) {
  38. $courriel = $form->get('courriel')->getData();
  39. //dd($courriel);
  40. $nom = $form->get('nom')->getData();
  41. $prenom = $form->get('prenom')->getData();
  42. $sujet = $form->get('sujet')->getData();
  43. $emailService->sendEmail([
  44. 'to' => 'contact@projetsmetiers.org',
  45. 'subject' => $sujet,
  46. 'template' => 'emails/contact.email.twig',
  47. 'context' => [
  48. 'courriel' => $courriel,
  49. 'nom' => $nom,
  50. 'prenom' => $prenom,
  51. 'sujet' => $sujet,
  52. ],
  53. ]);
  54. $this->addFlash('success', 'Votre message à bien été envoyé! Merci!');
  55. return $this->redirectToRoute('contact');
  56. }
  57. }
  58. return $this->render('general/contact.html.twig', array(
  59. 'form' => $form->createView(),
  60. 'mail' => $mail));
  61. }
  62. }