Reputation: 97
I created my website with Symfony and I am deploying it now. I used my contact form. When I use it I am supposed to receive messages to my email address. But currently, I didn't receive any message.
Here is my code.
I am using this line in my .env file :
MAILER_DSN=smtp://[email protected]:[email protected]:465?encryption=ssl&auth_mode=login
ContactController.php
<?php
namespace App\Controller\Front;
use App\Form\Front\ContactType;
use Symfony\Component\Mime\Email;
use App\Repository\UserRepository;
use App\Form\Front\ContactFromUserType;
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;
class ContactController extends AbstractController
{
#[Route('/contact', name: 'contact')]
public function index(
Request $request,
UserRepository $userRepository,
MailerInterface $mailer): Response
{
if ($this->getUser()) {
$connected = $this->getUser();
$useremail = $connected->getUserIdentifier();
$user = $userRepository->findOneBy(['email' => $useremail]);
$form = $this->createForm(ContactFromUserType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$contactFormData = $form->getData();
$message = (new Email())
->from($user->getEmail())
->to('[email protected]')
->subject('Vous avez reçu un email d\'un utilisateur de Go Zpeak : ' . $user->getFirstname() . ' ' . $user->getLastname())
->text(
$contactFormData['message'],
'text/plain'
);
$mailer->send($message);
$this->addFlash('success', 'Merci. Ton message a bien été envoyé !');
return $this->redirectToRoute('contact');
}
return $this->render('front/home/contact.html.twig', [
'form' => $form->createView()
]);
} else {
$form = $this->createForm(ContactType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$contactFormData = $form->getData();
$message = (new Email())
->from($contactFormData['email'])
->to('[email protected]')
->subject('Vous avez reçu un email d\'un visiteur de Go Zpeak !')
->text(
'Nom du visiteur : '.$contactFormData['name'].\PHP_EOL.
$contactFormData['message'],
'text/plain'
);
try {
$mailer->send($message);
} catch (TransportExceptionInterface $e) {
$this->addFlash('error', $e);
return $this->redirectToRoute('contact');
}
$this->addFlash('success', 'Merci. Ton message a bien été envoyé !');
}
return $this->render('front/home/contact.html.twig', [
'form' => $form->createView()
]);
}
}
}
Where might be the problem ?
Upvotes: -1
Views: 451
Reputation: 61
Which Symfony and Mailer versions are you using ? Your controller and form seems to be correct, have you check the log files of the app if any error messages from the mailer ?
To check the MAILER_DSN config, you can create a tiny Php project with only the Mailer if SMTP or SMTPS, login/password, catch Mailer events...
Upvotes: 0