Je poste parce que j'ai déjà examiné les solutions présentées dans d'autres questions, mais elles ne m'ont pas aidé.
Ce que j'essaie de faire, c'est d'envoyer un courrier électronique à l'aide de Swiftmailer via Gmail de Google Apps for Business, mais je continue à recevoir l'erreur suivante:
La connexion n'a pas pu être établie avec l'hôte smtp.gmail.com [Connexion expirée # 110]
Je sais que le code convient, car il fonctionne sur ma machine locale mais pas sur le serveur de production.
Ce que j'ai essayé jusqu'à présent:
Configuration:
# Swiftmailer Configuration
swiftmailer:
transport: smtp
encryption: ssl
auth_mode: login
Host: smtp.gmail.com
username: [email protected]
password: applicationspecificpassword
port: 465
Que puis-je essayer? Cela pourrait-il être un problème de DNS puisque j'utilise les enregistrements MX SMTP de Gmails au lieu des serveurs.
Remplacer: smtp.gmail.com
par 173.194.65.108
a réellement fonctionné pour moi!
Les étapes suivantes ont fonctionné pour moi:
Vérifiez si httpd_can_sendmail est activé, lancez ce getsebool httpd_can_sendmail
setsebool -P httpd_can_sendmail 1
Vérifiez également si httpd_can_network_connect est activé, exécutez getsebool httpd_can_network_connect
setsebool -P httpd_can_network_connect 1
'Host' => '64.233.166.108'
'port' => '465'
J'utilise Centos
Si vous souhaitez un jour revenir à l’utilisation de Gmail, je viens de faire face au même problème: le code fonctionnait sur ma machine locale mais pas sur un vrai serveur. ).
Il semble que si un serveur prend en charge IPv6 et IPv4, le domaine du serveur est résolu en version IPv6, de sorte que PHP essaie de s'y connecter. Mais je trouvais que smtp.gmail.com ne répondait pas. Après 30 secondes, le script a tout simplement abandonné et a expiré. On pourrait penser que PHP essaierait IPv4 après l’échec d’IPv6, mais non.
Ainsi, lorsque j'ai échangé l'adresse IPv4 de smtp.gmail.com (obtenu en lui envoyant une commande ping), tout a bien fonctionné et le courrier électronique a été envoyé. Ce n'est pas idéal d'utiliser une adresse IP à la place d'un domaine car cela pourrait changer, mais au moins, cela évite de déterrer le reste du plancher du serveur :)
Pour moi, le problème était que j’avais utilisé le cryptage tls, voici les ports pour TLS et SSL. N'oubliez pas de redémarrer après avoir modifié le fichier env.
smtp.gmail.com --- SSL --- 465
smtp.gmail.com --- StartTLS --- 587
En outre, vous devez changer la sécurité de votre compte Google
il suffit d'ajouter 74.125.130.108 smtp.gmail.com
to fichier hôtes du serveur
J'ai posté une solution de contournement dans Swiftmailer Gmail Connection expiré # 110 où vous pouvez utiliser IPv4 ou IPv6.
La configuration travaille pour moi:
mailer_transport: gmail
mailer_Host: smtp.gmail.com
mailer_user: [email protected]
mailer_password: my_pass
mailer_encryption: ssl
mailer_auth_mode: login
mailer_port: 465