Este proyecto es una plantilla para un microservicio de envío de correo electrónico construido con NestJS. Utiliza el módulo @nestjs-modules/mailer para el envío de correos electrónicos y ofrece una API RESTful para interactuar con el servicio.
Antes de iniciar el proyecto, debes instalar las dependencias del proyecto. Ejecuta el siguiente comando en la raíz del proyecto:
npm install
Este proyecto utiliza el paquete NestJS Config para manejar las configuraciones a través de variables de entorno. Necesitarás proporcionar tus propias credenciales SMTP en un archivo .env. Aquí tienes un ejemplo de las variables que necesitarás:
MAILER_HOST=smtp.example.com MAILER_PORT=587 MAILER_SECURE=false MAILER_USER=test@example.com MAILER_PASSWORD=password
Para iniciar el servidor en modo desarrollo, ejecuta el siguiente comando:
npm run start:dev
Esto inicia el servidor en localhost en el puerto 3000 (o el puerto definido en tus variables de entorno), y el servidor se reiniciará automáticamente cuando hagas cambios en el código.
Este proyecto sigue las mejores prácticas de desarrollo basado en pruebas (TDD) y cuenta con pruebas unitarias exhaustivas. Puedes ejecutar las pruebas con el siguiente comando:
npm test
Una vez que el servidor esté en ejecución, puedes enviar un correo electrónico haciendo una solicitud POST al endpoint /email/send. La solicitud debe incluir un cuerpo JSON con los siguientes campos: to, from, subject, y text.
Por ejemplo:
curl -X POST -H "Content-Type: application/json" -d '{"to":"dest@example.com", "from":"src@example.com", "subject":"Hello", "text":"Hello World"}' http://localhost:3000/email/send
En la carpeta /resources, encontrarás una colección de Postman que puedes utilizar para probar la API directamente desde la interfaz de Postman.
Este proyecto está licenciado bajo los términos de la licencia MIT. Puedes ver el archivo LICENCIA para más detalles.
Las contribuciones son siempre bienvenidas. Ya sea un informe de bug, una mejora, una nueva característica o incluso un consejo sobre el código o la arquitectura, no dudes en contribuir. Por favor, revisa las directrices de contribución antes de hacer un pull request.