Symfony 1and1 Email

Par Dev-crown, il y a 8 ans


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

Anthony Garcia, il y a 7 ans

salut as tu trouver une solution pour envoyer des emails?

Dev-crown, il y a 7 ans

Non toujours pas !

Houssem Derouich, il y a 7 ans

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
Digivia, il y a 7 ans

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