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()
]);
}
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
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