Bonjour,
Pour une petite application, j"ai pris un nom de domaine chez 1&1 pour mon hébergement.
Lors de la mise en production de cette dernière, je n'arrive pas à configurer l'envoi de mail... Ca fait quelques jours que je me prends la tête dessus, mais rien à faire, j'ai testé les différentes variantes de configuration dans le fichier .env et le MAILER_URL.
Ce que j'ai donc aujourd'hui :
Mon .env :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
# This file is a "template" of which env vars need to be defined for your application
# Copy this file to .env file for development, create environment variables when deploying to production
# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration
###> symfony/framework-bundle ###
APP_ENV=prod
APP_SECRET=f9e59d86302a72b2ad424b4de22cc1a5
#TRUSTED_PROXIES=127.0.0.1,127.0.0.2
#TRUSTED_HOSTS=localhost,example.com
###< symfony/framework-bundle ###
###> 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=smtp://auth.smtp.1and1.fr:465?encryption=ssl&auth_mode=login&username=monmail@monmail.fr&password=pass
# MAILER_URL=smtp://monmail@monmail.fr:pass@auth.smtp.1and1.fr:465/?timeout=60&encryption=ssl&auth_mode=login& |
Mon fichier swiftmailer.yml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
swiftmailer:
default_mailer: default
mailers:
default:
url: '%env(MAILER_URL)%'
transport: mail
command: '/usr/sbin/sendmail -bs'
username: usermail
password: pass
host: auth.smtp.1and1.fr
port: 465
timeout: 30
source_ip: null
local_domain: null
encryption: ssl
auth_mode: login
delivery_addresses: { }
logging: true
delivery_whitelist: { } |
Et enfin, le controleur associé :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
public function sendContactMail($nom, $email, $message)
{
// Variables concernant l'email
$message = (new \Swift_Message('Nouveau message de contact reçu.'))
->setFrom(self::EMAIL)
->setTo('contact@nos-amis-les-oiseaux.fr')
->setBody(
$this->twig->render('contact/mailMessageContact.html.twig', [
'nom'=>$nom, 'email'=>$email, 'message'=>$message
]),
'text/html'
);
$this->mailer->send($message);
} |
Les variables récupérées sont données par le formulaire de contact.
Sur ma production, le site me sort une erreur 500 et mon log me renvoie ça :
1 2 3 4 5
|
[2018-05-12 09:30:11] request.INFO: Matched route "contact". {"route":"contact","route_parameters":{"_controller":"App\\Controller\\ContactController::contactAction","_route":"contact"},"request_uri":"https://nos-amis-les-oiseaux.fr/contact","method":"POST"} []
[2018-05-12 09:30:11] security.INFO: Populated the TokenStorage with an anonymous Token. [] []
[2018-05-12 09:30:41] request.CRITICAL: Uncaught PHP Exception Swift_TransportException: "Connection could not be established with host auth.smtp.1and1.fr [Connection timed out #110]" at /homepages/35/d730051411/htdocs/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php line 269 {"exception":"[object] (Swift_TransportException(code: 0): Connection could not be established with host auth.smtp.1and1.fr [Connection timed out #110] at /homepages/35/d730051411/htdocs/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php:269)"} [] |
Voilà, si quelqu'un a un début de solution, je suis preneur :p
Merci !
Partager