Usamos cookies para asegurarnos de brindarle la mejor experiencia en nuestro sitio web. Lea nuestro Política de privacidad.
RECHAZAR TODAS LAS COOKIESESTOY DE ACUERDO
Código abierto
Código abierto - Servicio

Servicio de API de correo electrónico

Visite nuestro repositorio de Github
By
2am.
June 13, 2024
6 minutos de lectura

Mail Service

El Mail Service es un microservicio de correo electrónico que envía emails utilizando plantillas basadas en Mustache. Fue creado para que nuestros equipos de desarrollo en 2am.tech pudieran evitar tener que configurar servicios de correo repetidamente en proyectos que utilizan una infraestructura basada en microservicios.

Este servicio es una combinación de dos aplicaciones independientes:

  • una aplicación CI desarrollada con Symfony, y
  • Es una API construida con Slim3, que utiliza una técnica llamada spooling (procesamiento en cola).

El proyecto utiliza Monolog para registrar, Fractal como serializador, Tactitiano como bus de comandos, gettext para traducciones, Autenticación de acceso básica y Tokens web Json para la autenticación (esto es opcional), y Filtro Zend para el filtrado y la validación de datos.

Docker Compose y Colección de Postman

Se incluyen archivos Docker Compose y una colección de Postman para facilitar el desarrollo, aunque Docker no es estrictamente necesario, ya que también puedes utilizar fácilmente el servidor embebido de PHP.

El proyecto intenta seguir los principios de DDD (Domain-Driven Design).

Instalación

Instala la última versión usando Composer (aquí se muestra un ejemplo utilizando una URL de GitHub):

$ composer create-project --no-interaction --stability=dev 2amigos/mail-service

Enviar un Correo a la Cola del Sistema de Archivos

Lo primero que necesitamos hacer es modificar el mapa del localizador de commandBus y utilizar mail.send.queue.handler en lugar de mail.send.spool.handler:

$map = [
	CreateTokenCommand::class => 'token.create.handler',
	SendMessageCommand::class => 'mail.send.queue.handler',
];

Y eso es todo. Con la misma llamada anterior, esta vez el mensaje se enviará a la carpeta.

Enviar un Correo desde la Cola del Sistema de Archivos

Como mencionamos anteriormente, el paquete php-enqueue/enqueue-bundle incluye un conjunto de comandos muy útiles. Para consultar la referencia completa de estos comandos, te recomendamos visitar su documentación oficial.

El comando para consumir todos los mensajes que llegan a la cola es enqueue:consume:

$ ./bin/console enqueue:consume mail --no-interaction -vvv --receive-timeout=60000

Colaboradores

¡Gracias a todos por sus inestimables esfuerzos!

Comparte esta publicación
Volver al código abierto
No te pierdas
nuestras últimas ideas
— ¡Suscríbete ahora!
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Navigate
Empieza ahora