src/Controller/ContactUsController.php line 66

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Twig\Environment;
  4. use App\Form\ContactUsType;
  5. use App\Entity\Main\ContactUs;
  6. use Symfony\Component\Mime\Email;
  7. use Symfony\Component\Mime\Address;
  8. use App\Repository\ContactUsRepository;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\Mailer\MailerInterface;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  14. /**
  15.  * @Route("/contact_us")
  16.  */
  17. class ContactUsController extends AbstractCoreController
  18. {
  19.     // /**
  20.     //  * @Route("/", name="app_contact_us_index", methods={"GET", "POST"})
  21.     //  */
  22.     // public function index(Request $request, ContactUsRepository $contactUsRepository, Environment $twig): Response
  23.     // {
  24.     //     $contactU = new ContactUs();
  25.     //     $form = $this->createForm(ContactUsType::class, $contactU);
  26.     //     $form->handleRequest($request);
  27.     //     $is_sent = false;
  28.     //     if ($form->isSubmitted() && $form->isValid()) {
  29.     //         $contactUsRepository->add($contactU, true);
  30.     //         $to = $_ENV["EMAIL_SENDER"];
  31.     //         $subject = $contactU->getSubject();
  32.     //         $message = $twig->render('contact_us/email.html.twig', [
  33.     //             'message' => $contactU->getMessage(),
  34.     //         ]);
  35.     //         // Always set content-type when sending HTML email
  36.     //         $headers = "MIME-Version: 1.0" . "\r\n";
  37.     //         $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
  38.     //         // More headers
  39.     //         $headers .= "From: ".$contactU->getEmail()."\r\n";
  40.     //         if(mail($to, $subject, $message, $headers)) $is_sent = true;
  41.     //         $contactUNew = new ContactUs();
  42.     //         $form = $this->createForm(ContactUsType::class, $contactUNew);
  43.     //         // return $this->redirectToRoute('app_contact_us_index', [], Response::HTTP_SEE_OTHER);
  44.     //     }
  45.     //     return $this->renderForm('contact_us/new.html.twig', [
  46.     //         'contact_u' => $contactU,
  47.     //         'form' => $form,
  48.     //         'is_sent' => $is_sent,
  49.     //     ]);
  50.     // }
  51.     /**
  52.      * envoi email
  53.      * @Route("/", name="app_contact_us_index")
  54.      */
  55.     public function contactEmail(Request $requestMailerInterface $mailerContactUsRepository $contactUsRepositoryEnvironment $twig) {
  56.         $contactUs = new ContactUs();
  57.         $form $this->createForm(ContactUsType::class, $contactUs);
  58.         $form->handleRequest($request);
  59.         $is_sent false;
  60.         if ($form->isSubmitted() && $form->isValid()) {
  61.             $contactUsRepository->add($contactUstrue);
  62.             $subject $contactUs->getSubject();
  63.             $message $twig->render('contact_us/email.html.twig', [
  64.                 'message' => $contactUs->getMessage(),
  65.                 'mail_sender' => $contactUs->getEmail()
  66.             ]);
  67.             $email = (new Email())
  68.                 ->from(new Address($contactUs->getEmail(), $contactUs->getEmail()))
  69.                 ->to($_ENV['EMAIL_SENDER'])
  70.                 ->addReplyTo($contactUs->getEmail())
  71.                 ->subject($subject)
  72.                 ->html($message);
  73.             // Envoi l'email
  74.             if ($mailer->send($email)) $is_sent true
  75.             
  76.             // Vide le formulaire de contact 
  77.             $contactUsNew = new ContactUs();
  78.             $form $this->createForm(ContactUsType::class, $contactUsNew);
  79.         }
  80.         return $this->renderForm('contact_us/new.html.twig', [
  81.             'contact_u' => $contactUs,
  82.             'form' => $form,
  83.             'is_sent' => $is_sent,
  84.         ]);
  85.     }
  86.     /**
  87.      * @Route("/vonintsoa/mail/test", name="app_vonintsoa_test")
  88.      */
  89.     public function show_mail(){
  90.         return $this->render('contact_us/email.html.twig',[
  91.             'message' => 'contenu message',
  92.             'mail_sender' => 'rhjmanda@gmail.com'
  93.         ]);
  94.     }
  95. }