Je n'arrive pas à envoyer de mail en ligne de commande depuis un serveur OVH
* Serveur : Performance (perf2014x1)
* Cluster : 028
Je teste l'envoi de mails avec une commande très simple, dans un projet Symfony5 utilisant le service Mailer. Je précise que cette commande fonctionne très bien sur d'autres serveurs, et que les username/password de la boite mail utilisée pour le SMTP sont corrects et vérifiés via le webmail.
Voilà le message obtenu :
$ php bin/console test-mail
15:26:07 ERROR [app] Connection could not be established with host "ssl://ssl0.ovh.net:465": stream_socket_client(): unable to connect to ssl://ssl0.ovh.net:465 (Connection refused)
15:26:07 ERROR [app] #0 [internal function]: Symfony\Component\Mailer\Transport\Smtp\Stream\SocketStream->Symfony\Component\Mailer\Transport\Smtp\Stream{closure}(2, 'stream_socket_c…', '/home/user/w…', 142, Array)
Config (.env) :
`MAILER_DSN="smtp://test@domaine.fr:XXXXXXXXXXXXX@ssl0.ovh.net:465"`
J'ai ouvert un ticket auprès du support OVH, qui ne me donne que les informations théoriques, mais rien qui puisse m'aider à identifier mon problème exact. Voici leur retour :
Paramètres à utiliser :
* Serveur SMTP : ssl0.ovh.net
* Port : 465
* Méthode d'authentification : adresse mail + mot de passe normal
* Méthode de chiffrement : SSL
Exemple de fichier de configuration :
$mail->Host = "ssl0.ovh.net"; // SMTP server
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl";
$mail->Port = 465;
$mail->Username = // SMTP account username
$mail->Password = // SMTP account password
Essayez le port 587 au lieu de 465, et au lieu de ssl vous mettez tls ou starttls.
La console ssh est bridée au niveau de ses communications externes.
Les sites web tournent dans un autre environnement d'exécution (qui peut être aussi bridé, mais différemment suivant d'autres règles…)
J'avais essayé avec le port 587 au départ, même problème.
Et pour le SSL, la seule config que j'ai défini est l'hôte "ssl0.ovh.net" :
`MAILER_DSN="smtp://test@domaine.fr:XXXXXXXXXXXXX@ssl0.ovh.net:465"`
A quel endroit je peux préciser "tls" ou "starttls" ?
J'ai aussi essayé avec le paramètre "verify_peer" mais toujours la même erreur :
`MAILER_DSN="smtp://test@domaine.fr:XXXXXXXXXXXXX@ssl0.ovh.net:465?verify_peer=0"`
J'ai exactement le même souci, dans le même contexte ou presque (composant mailer symfony 6).<br />J'ai mis comme variable d'environnement :<br />MAILER_DSN=smtp://USER:PASSWORD@smtp.DOMAINE_FR:587<br /><br />Je reçois l'erreur suivante :<br />Unable to connect with STARTTLS: stream_socket_enable_crypto(): Peer certificate CN=`ns0.ovh.net' did not match expected CN=`smtp.DOMAINE_FR'<br /><br />Merci d'avance pour tout aide. S'il faut des infos supplémentaires, n'hésitez pas à me dire
Cela ne fonctionne pas non plus et l'erreur est :
Connection to "ssl0.ovh.net:587" has been closed unexpectedly.
smtp://
il n'y a pas un smtps:// ou submission:// ?
Voyez la doc de Symfony
Malheureusement, non. L'erreur semble plutôt provenir de l'environnement au sens large.