<?php
namespace App\Controller;
use App\Entity\Contact;
use App\Form\ContactType;
use App\Service\MailTransport;
use Doctrine\ORM\EntityManager;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Mime\Email;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Mailer\MailerInterface;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Doctrine\ORM\EntityManagerInterface;
class ContactController extends AbstractController
{
#[Route('/contact', name: 'app_contact')]
public function index(Request $request, MailTransport $mailTransport, EntityManagerInterface $entityManager)
{
$contact = new Contact;
$form = $this->createForm(ContactType::class, $contact);
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()) {
$contactFormData = $form->getData();
$from = "Contact UBPhotographies";
$to = "contact@ubphotographies.com";
$subject = 'Contact ubphotographies';
$email = $contact->getEmail();
$type = $contact->getType();
$phone = $contact->getPhone();
$fullname = $contact->getName();
$firstName = $contact->getFirstname();
$message = $contact->getMessage();
$message = "Bonjour,
\r\nVous avez un nouveau message reçu depuis le formulaire contact :
\r\n- Type de demande : $type\r\n- Email : $email\r\n- Téléphone : $phone\r\n- Nom : $fullname\r\n- Prénom : $firstName\r\n- Message :\r\n$message
";
$mail = $mailTransport->send($from, $to, $subject, $message);
if ($mail == true) {
$this->addFlash('success', 'Votre message a bien été envoyé');
} else {
$this->addFlash('error', "Votre message n'a pas pu être envoyé, veuillez réessayer.");
}
$contact->setCreationDate(date('d-m-Y H:i:s'));
$entityManager->persist($contact);
$entityManager->flush();
return $this->redirectToRoute('app_contact');
}
return $this->render('contact/index.html.twig', [
'contact_form' => $form->createView()
]);
}
}