Bonjour,
j'ai pas mal cherché mais je ne trouve pas de solution à mon problème. Il y a quelques mois, mes envois d'emails fonctionnaient très bien avec cette configuration (Symfony/Swift_Mailer) :
* mailer_transport: smtp
* mailer_auth_mode: login
* mailer_host: ssl0.ovh.net
* mailer_port: 587
* mailer_user: postmaster@centreinstantpresent.fr
* mailer_password: *******
Cette configuration fonctionne toujours en local, mais plus sur mes sites hébergés (hébergement mutualisé, offre perso 2014).
Entre temps, ce qui a changé sur mon hébergement est le fait que j'ai évolué d'une offre perso datant de quelques années vers l'offre perso 2014 et potentiellement j'ai accepté l'IPv6 (cela était peut-être déjà comme ça avant) + évolution de la version de PHP vers 5.6.
J'ai essayé plusieurs solutions pour le mailer_host je suis passé de ns0.ovh.net à ss0.ovh.net, j'ai essayé d'autres ports, etc. rien à faire cela ne passe pas. L'erreur que j’obtiens à chaque fois :
Connection could not be established with host ssl0.ovh.net [Connection timed out #110]
et également dans Silenced Error (Profiler de Symfony) :
stream_socket_client(): unable to connect to ssl0.ovh.net:25 (Connection timed out)
J'ai déjà appelé le service client d'OVH qui me dit que tout fonctionne de leur côté et que cela devrait venir de mon code, pourtant cela fonctionne bien en local donc je suis un peu bloqué.
Est-ce que cela vient de la version de PHP (7 en local sur Apache et dans mon composer de Symfony est indiqué : "php": ">=5.5.9" et pour rappel 5.6 sur OVH) ?
Ou alors de l'IPv6, j'ai lu quelques articles qui disent que cela peut provoquer une connection time out.
Ou aussi le service DNSSEC d'OVH ?
Je suis un peu perdu dans tout ça et je ne sais pas depuis quand cela ne fonctionne plus, du coup c'est difficile à dire d'où cela peut venir…
Merci d'avance pour votre aide.
Finalement j'ai trouvé la solution ici : https://openclassrooms.com/forum/sujet/symfony2-swiftmailer-gmail-chez-ovh-70507 https://openclassrooms.com/forum/sujet/symfony2-swiftmailer-gmail-chez-ovh-70507.
Il suffit de remplacer toute la configuration par simplement :
mailer_transport : mail
Apparement c'est à cause du fait que OVH ne supporte pas le smtp sur les hébergements mutualisés. J'imagine que cela a du changer entre les vieilles offres perso et l'offre perso 2014.
J'espère que cela pourra aider d'autre personnes.
Salut Mickael,
Quelle est ta function mail? tu l'as placé dans quel fichier ?
je galère un peu… merci
Salut Timothy, je ne suis pas certain de savoir ce que tu as besoin, du coup je te mets un exemple de mon action pour ma page de contact depuis mon controller (je récupère les informations pour mon mail depuis un formulaire et je crée le body du message à l'aide d'un template mail que j'ai créé, mais ce n'est pas du tout obligatoire, tu peux juste tester avec un body quelconque) :
public function contactAction(Request $request)
{
$form = $this->createForm(ContactType::class);
if ($request->isMethod('POST') && $form->handleRequest($request)->isValid()) {
$data = $form->getData();
$message = \Swift_Message::newInstance()->setSubject($data['subject'])->setFrom($data['email'])->setTo('ton_adresse_email@gmail.com')
->setBody($this->renderView('Emails/email_contact.html.twig', array(
'firstName' => $data['firstName'],
'lastName' => $data['lastName'],
'email' => $data['email'],
'tel' => $data['tel'],
'subject' => $data['subject'],
'content' => $data['content']
)),'text/html');
$this->get('mailer')->send($message);
$request->getSession()->getFlashBag()->add('notice', "Votre message a bien été envoyé.");
return $this->redirect($this->generateUrl('website_contact').'#formulaire_contact');
}
return $this->render('WebsiteBundle:Website:contact.html.twig', array('form' => $form->createView()));
}
Je n'ai rien changé à cela pour résoudre mon précédent problème de configuration, ensuite voilà la configuration pour SwifMailer si la configuration smtp ne fonctionne pas (/app/config/config.yml) :
swiftmailer:
transport: "%mailer_transport%"
spool: { type: memory }
Et puis dans le fichier où j'ai tous mes paramètre il faut rajouter (/app/config/parameters.yml) :
parameters:
mailer_transport: mail
Voilà, dis moi si cela t'aide ou non, après je ne suis pas un expert en Symfony mais si tu as d'autres questions n'hésite pas, j'essaierai d'y répondre comme je peux.
Ca a fonctionné pour moi, un grand merci Mickael !