symfony2 new enviar correo php email symfony swiftmailer

php - new - Swiftmailer: la conexión no se pudo establecer con el host smtp.gmail.com



symfony 4 swiftmailer (8)

Acabo de tener este problema y, después de una búsqueda inmensa de la solución, todo era una cuestión de configuración de seguridad con mi host (en este caso, Scaleway). Tuve que abrir la configuración de seguridad y habilitar SMTP saliente.

Estoy publicando porque ya he pasado por las soluciones publicadas en otras preguntas aquí, pero no han ayudado.

Lo que estoy tratando de hacer es enviar un correo electrónico utilizando Swiftmailer a través de Google Apps for Business Gmail, pero continúo recibiendo este error:

No se pudo establecer la conexión con el host smtp.gmail.com [Tiempo de espera agotado de la conexión # 110]

Sé que el código está bien porque funciona en mi máquina local pero no en el servidor de producción.

Lo que he intentado hasta ahora:

  • Habilitado OpenSSL.
  • Cuenta desbloqueada de Google captcha.
  • Usé una contraseña específica de la aplicación.
  • Direcciones IP SMTP de Gmail en lista blanca

Configuración:

# Swiftmailer Configuration swiftmailer: transport: smtp encryption: ssl auth_mode: login host: smtp.gmail.com username: [email protected] password: applicationspecificpassword port: 465

¿Qué más puedo probar? ¿Podría tratarse de un problema de DNS, ya que estoy utilizando los registros SMTP MX de Gmails en lugar de los servidores?


Config trabajando para mi:

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



Los siguientes pasos funcionaron para mí:

  1. Compruebe si httpd_can_sendmail está getsebool httpd_can_sendmail , ejecute este getsebool httpd_can_sendmail

    • Cuando obtenga: httpd_can_sendmail -> off , ejecute setsebool -P httpd_can_sendmail 1
    • Cuando aparece : httpd_can_sendmail -> en eso está bien moverse en el paso 2.
  2. Compruebe también si httpd_can_network_connect está getsebool httpd_can_network_connect , ejecute getsebool httpd_can_network_connect

    • Cuando obtiene httpd_can_network_connect -> off ejecute setsebool -P httpd_can_network_connect 1
    • Cuando obtienes: httpd_can_network_connect -> on eso está bien mover en el paso 3.
  3. Use la siguiente configuración para smtp : ''host'' => ''64.233.166.108'' ''port'' => ''465''

Estoy usando centos


Para mí, el problema fue que usé el cifrado tls, aquí están los puertos para TLS y SSL. No te olvides de reiniciar después de cambiar el archivo env.

smtp.gmail.com --- SSL --- 465 smtp.gmail.com --- StartTLS --- 587

Además, necesitas cambiar la seguridad de tu cuenta de Google


Reemplazar: smtp.gmail.com con 173.194.65.108 realmente funcionó para mí!


Si alguna vez desea volver a usar Gmail, acabo de enfrentar el mismo problema, el código funcionó en mi máquina local pero no en un servidor real, y creo que he descubierto qué lo está causando (al menos en mi caso) ).

Parece que si un servidor admite IPv6 e IPv4, el dominio del servidor se resuelve como su versión de IPv6, por lo que PHP intenta conectarse a eso. Pero me di cuenta de que smtp.gmail.com no respondió, por lo que después de 30 segundos, el script se rindió y se agotó. Usted pensaría que PHP probaría IPv4 después de que IPv6 fallara, pero no.

Así que cuando cambié la dirección IPv4 de smtp.gmail.com (lo obtuve haciendo ping), todo funcionó bien y el correo electrónico se envió. No es ideal usar una IP en lugar de un dominio, ya que podría cambiar, pero al menos ahorra desenterrar el resto de tablas del servidor :)


simplemente agregue 74.125.130.108 smtp.gmail.com al archivo de hosts del servidor