Symfony: ¿Cómo usar el Componente Mailer?

Componente Mailer de Symfony

El componente Mailer de Symfony fue introducido en la versión 4.3 y aún esta considerado un feature experimental

Nota a considerar antes de comenzar a usarlo en producción.

Otra de las necesidades más comunes en cada aplicación que desarrollamos, es el uso de una librería que nos provea un cliente de correo.

Symfony, como era de esperarse, nos provee siempre de herramientas y componente muy útiles que nos permiten desarrollar nuestras aplicaciones con una garantía de calidad impecable.

Es por esto, que quiero mostrarte como funciona este nuevo componente que se introduce en el framework desde la versión de Symfony 4.3

Vale la pena destacar que el componente Mime es quién permite crear los mensajes de correo a enviar, y Mailer es quien realmente se encarga de enviarlos.

Los mensajes se envían mediante «transports«, que pueden ser desde un servidor SMTP local hasta un servicio de terceros para envío masivo de emails.

Este componente nos provee de integración con los siguientes servicios: Amazon SES, MailChimp, Mailgun, Gmail, Postmark y SendGrid. Cada uno de estos se instala por separado así que para este post te mostreré un ejemplo de como usar en tu aplicación Amazon SES.

Instalación del componente Mailer para Amazon SES

Este paquete, al terminar su instalación, añade algunas variables a nuestro fichero de entorno .env para poder configurar los parametros requeridos para su funcionamiento:

Y con esto ya tenemos todo listo. Lo siguiente es inyectar el servicio de email en cualquier parte donde sea requerido gracias al autowiring de symfony, añadiendo tan solo el argumento MailerInterface en el constructor de tu clase eso es todo

Cuando llamas a $this->mailer->send($email), el mensaje se envía inmediatamente. Si quieres mejorar el rendimiento, usa el componente Messenger para enviar los mensajes de manera asíncrona. Lee ademas este artículo de la documentación de Symfony para aprender más sobre cómo hacerlo.

Es todo por ahora con todo lo relacionado con este maravilloso componente Mailer de Symfony. Estaré publicando actualizaciones a medida que el componente vaya incorporando nuevas funcionalidades.

Recuerda que si tienes alguna sugerencia o pregunta, no dudes en dejar tus comentarios al final del post.

Si te gustó este post, ayúdame a que pueda servirle a muchas más personas, compartiendo mis contenidos en tus redes sociales.

Espero que este post haya sido de gran ayuda para ti, y como siempre, cualquier inquietud o duda que tengas, puedes contactarme por cualquiera de las vías disponibles, o dejando tus comentarios al final de este post. También puedes sugerir que temas o post te gustaría leer a futuro.


Si te gustó el post, regálame tus aplausos!!!