Bonjour tout le monde j'ai besoin d'aide help me ça fait 3 jour j'essaye de régler le problème mais j'ai toujours pas trouver de solution

alors voila j'ai fini mon site créer avec symfony 4.1 et je veux le mettre en ligne tout marche nickel y a rien a dire sauf une chose

c'est l'envoie de mail le formulaire de contact il fonctionne (je les tester sur un autre serveur ) mais sur les serveur de 1and1 il fonctionne pas

j'ai tout essayer mailjet gmail tout les smtp possible help me svp j'en est besoin pour mon formulaire de contact et pour la confirmation par mail pour FosUserBundle

voila mes variable d’environnement
mon service.yaml :

mailer_transport: smtp
    mailer_encryption: ssl
    mailer_port: 465
    mailer_host: auth.smtp.1and1.fr
    mailer_user: email@mondoamine
    mailer_password: mot de passe

et mon .env :

###> symfony/swiftmailer-bundle ###
# For Gmail as a transport, use: "gmail://username:password@localhost"
# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="
# Delivery is disabled by default via "null://localhost"
MAILER_URL=moncpf.info
###< symfony/swiftmailer-bundle ###

mon controller

/**
     * @Route("/contact")
     * @param Request $request
     * @return Response
     */
    public function contact(Request $request, \Swift_Mailer $mailer): Response {

        $form = $this->createForm(ContactType::class);
        $form->handleRequest($request);
        if($form->isSubmitted() && $form->isValid()) {
            $contact = $form->getData();
            $message = (new \Swift_Message($contact['subject']))
                ->setFrom($contact['email'])
                ->setTo('crowbackend@gmail.com')
                ->setBody(
                    $contact['message'],
                    'text/plain'
                );
            $mailer->send($message);

            $this->addFlash('notice', 'Le méssage a bien étais envoyer vous allez recevoir une réponse d\'ici 48h' );

            return $this->redirectToRoute('app_front_index');
        }

        return $this->render('contact.html.twig', [
            'title' => 'Contacter Nous',
            'description' => 'Contacter nous a tout moment si vous avez des questions',
            'keywords' => 'Contact, monCpf, info',
            'formContact' => $form->createView()
        ]);
    }

4 réponses


Houssem Derouich
Réponse acceptée

Bonsoir
Dans le controlleur setFrom tu dois mettre l'email de ton application est pas l'email depuis le formulaire, car vous n'avez pas un accès sur les autres emails, donc c'est le parametre mailer_user.
Pour la configuration voici la mienne :

swiftmailer:
#    url: '%env(MAILER_URL)%'
    transport: "%mailer_transport%"
    host:      "%mailer_host%"
    username:  "%mailer_user%"
    password:  "%mailer_password%"
    spool:     { type: memory }

et

parameters:
    mailer_transport: smtp
    mailer_host: smtp.1and1.com
    mailer_por: 587
    mailer_user: contact@monsite.com
    mailer_password: ******
    mailer_auth_mode: login
    sender_name: Nonsite

salut as tu trouver une solution pour envoyer des emails?

Non toujours pas !

Si tu es sur Symfony 4, le paramétrage a changé. En effet, il n'y a plus de parameters.yml dans la V4.
La config de base de SwiftMail est dans config/packages/swiftmailer.yaml, voici celle de base :

swiftmailer:
    url: '%env(MAILER_URL)%'
    spool: { type: 'memory' }

Et les paramètres sont désormais une chaine de connexion, qui se trouve dans une variable d'environnement (MAILER_URL). Celle de base incluse dans le .env est :

###> symfony/swiftmailer-bundle ###
# For Gmail as a transport, use: "gmail://username:password@localhost"
# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="
# Delivery is disabled by default via "null://localhost"
MAILER_URL=null://localhost
###< symfony/swiftmailer-bundle ###

Si tu es passé en mode prod, la bonne pratique est de déporter tes variables d'environnement directement sur le serveur (apache, ngnix), de supprimer le .env à la racine de ton projet et de virer le composant DotEnv. Voir https://symfony.com/doc/current/deployment.html#b-configure-your-environment-variables