Symfony 2: Swiftmailer Exception
-
27-10-2019 - |
Pregunta
He estado trabajando en los correos electrónicos de Symfony 2 enviando usando Swiftmailer.
Aquí está mi configuración Swiftmailer en App/Config/Config.yml
swiftmailer:
transport: gmail
username: myusername@gmail.com
host: smtp.gmail.com
password: mypassword
También he configurado mi XAMPP localhost para enviar correos electrónicos.
Tengo un formulario en el que el usuario ingresa direcciones de correo electrónico (correos electrónicos máximo 5), asunto y mensaje. Para las primeras pruebas para enviar el formulario los correos electrónicos donde se envían. También recibí correos electrónicos. Pero después de eso, he recibido este error a continuación repetidamente.
No se pudo autenticarse en el servidor SMTP con el nombre de usuario "myusername@gmail.com" utilizando 1 posibles autenticadores 500 Error de servidor interno - Swift_transportException
¿Cuál es el problema aquí? También intenté detener mi XAMPP y luego reiniciarlo, pero aún así el problema persiste. ¿Alguien sabe cuál es el problema aquí?
Gracias.
Solución
Te enfrentas a este problema porque no has configurado correctamente tu host de correo. En primer lugar, le recomiendo que utilice un servicio como SendGrid y configurarlo como detallado en este Tutorial de configuración de correo de Symfony2:
mailer_transport: smtp
mailer_host: smtp.sendgrid.net
mailer_user: your_sendgrid_username
mailer_password: 'your_sendgrid_password'
mailer_port: 587
El tutorial también contiene detalles sobre cómo configurar correctamente un servicio de correo en Symfony2 y cómo crear plantillas de correo.
Pero usted si aún desea usar Gmail, entonces la configuración correcta es:
mailer_transport: smtp
mailer_host: smtp.gmail.com
mailer_user: your_gmail_address@gmail.com
mailer_password: 'your_gmail_password'
mailer_port: 587
Otros consejos
Hasta donde recuerdo host
el valor se ignora cuando transport
se establece en gmail
. Con respecto a su problema, asegúrese de estar utilizando la última versión de Swiftmailer (v4.1.5), porque allí se ha solucionado. De ChangeLog:
- stream_socket_client () previsto generar un error y arrojar una swift_transportexception en su lugar
En general, si la autenticación falla, una excepción del tipo Swift_TransportException
será arrojado.