Problème d'envoi d'emails avec Swift Mailer à Mailtrap

75 views
Skip to first unread message

MINKOUE OBAME Anouchka

unread,
Aug 12, 2019, 7:08:58 AM8/12/19
to Association Francophone des Utilisateurs de Symfony
Bonjour
J'ai créé un formulaire de contact et j'essaie d'envoyer des emails et ça ne passe pas, les email ne sont pas envoyés, du moins je ne reçois rien sur mon compte Mailtrap.

Voici mon controller ContactController.php :
<?php

namespace App\Controller;

use App\Form\ContactType;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;


class ContactController extends AbstractController
{
    /**
     * @Route("/contact", name="contact")
     */
    public function index(Request $request, \Swift_Mailer $mailer)
    {
        $form = $this->createForm(ContactType::class);
        
        $form->handleRequest($request);

        //$this->addFlash('info', 'Some useful info');

        if ($form->isSubmitted() && $form->isValid()) {
            
                       $contactFormData = $form->getData();
            
                       $message = (new \Swift_Message('You Got Mail!'))
                                      ->setFrom($contactFormData['from'])
                                      ->setTo('minkou...@gmail.com')
                                      ->setBody(
                                          $contactFormData['message'],
                                          'text/plain'
                                      )
                                  ;
                       
                                  $mailer->send($message);

                                  $this->addFlash('success', 'Message envoyé !');
                       
                                  return $this->redirectToRoute('contact');
            
                       // do something interesting here
                   }
        
        return $this->render('contact/index.html.twig', ['our_form' => $form->createView() ]);
    }
}


Ma vue contact/index.html.twig :
{% extends 'base.html.twig' %}

{% block title %}Formulaire de contact{% endblock title %}

{% block body %}
<h1>Formulaire de contact</h1>

    <div class="container">
        {{ form_start(our_form, {'attr': {'class': 'form-horizontal'}}) }}
        <div class="form-group">
     {{ form_label(our_form.name, "Votre nom *") }}

     {# Affichage des erreurs pour ce champ précis. #}
    {{ form_errors(our_form.name) }}

      {# Génération de l'input. #}
      {{ form_widget(our_form.name, {'attr': {'class': 'form-control'}}) }}
      </div>

      <div class="form-group">
     {{ form_label(our_form.from, "Votre Email *") }}

     {# Affichage des erreurs pour ce champ précis. #}
    {{ form_errors(our_form.from) }}

      {# Génération de l'input. #}
      {{ form_widget(our_form.from, {'attr': {'class': 'form-control'}}) }}
      </div>

      <div class="form-group">
     {{ form_label(our_form.message, "Votre message *") }}

     {# Affichage des erreurs pour ce champ précis. #}
    {{ form_errors(our_form.message) }}

      {# Génération de l'input. #}
      {{ form_widget(our_form.message, {'attr': {'class': 'form-control'}}) }}
      </div>

        <input type="submit" value="Envoyer" />

        {{ form_end(our_form) }}
    </div>

{% endblock %}



Mon formulaire ContactType.php :
<?php

namespace App\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

class ContactType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            //->add('field_name')
           ->add('name', TextType::class)
           ->add('from', EmailType::class)
           //->add('dateOfBirth', DateTimeType::class)
           ->add('message', TextareaType::class)
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            // Configure your form options here
        ]);
    }
}



Dans mon fichier .env

Croquis (1).png


Merci pour votre aide !

Reply all
Reply to author
Forward
0 new messages