src/Controller/MailerController.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Component\Mime\Email;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\Mailer\MailerInterface;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use App\Controller\ContactController;
  10. class MailerController extends AbstractController
  11. {
  12.     /**
  13.      * Email sender form web site
  14.      */
  15.     #[Route('/contact'name'contact_page')]
  16.     public function sendEmail(Request $requestMailerInterface $mailer): Response
  17.     {
  18.         $form $this->createForm(ContactController::class);
  19.         $form->handleRequest($request);
  20.         if ($form->isSubmitted() && $form->isValid()) {
  21.             $contactFormData $form->getData();
  22.             $email = (new Email())
  23.                 ->from($contactFormData['fullname'] . '<' $contactFormData['email'] . '>')
  24.                 ->to($contactFormData['service'])
  25.                 ->subject('Vous avez reçu un message du site web Ctobi France')
  26.                 // ->text('here the text from the site')            
  27.                 ->html(
  28.                     '<p>Le correspondant : <h3>' $contactFormData['fullname'] . '</h3>
  29.                 a laissé le message suivant: ' $contactFormData['message'] . '</p>
  30.                 <p> Cette action est demandé en retour: ' $contactFormData['action'] . '</p>'
  31.                 );
  32.             $mailer->send($email);
  33.             $this->addFlash('success''Envoi reussi !');
  34.             return $this->redirectToRoute('contact_page');
  35.         } else {
  36.             $this->addFlash('warning''Echec de l\'envoi !');
  37.         }
  38.         // return $this->render('pages/contact.html.twig', [
  39.         //     'formView' => $form->createView()
  40.         // ]);
  41.         return $this->renderForm('pages/contact.html.twig', [
  42.             'form' => $form,
  43.         ]);
  44.     }
  45. }