Skip to content

riskpy/risk-email

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Risk Email Service

risk-email es una herramienta desarrollada en Java para el envío de e-mail, diseñada como parte del ecosistema risk e integrada con su módulo de Mensajería.

Este servicio permite el envío de correos electrónicos mediante el protocolo SMTP, siendo ideal para notificaciones de diferentes tipos de negocios.


🚀 Funcionalidades principales

  • 📤 Envío de correos electrónicos a través de múltiples servidores SMTP.
  • 🗃️ Lectura de mensajes pendientes desde base de datos Oracle.
  • 🧩 Configuración desacoplada mediante archivo YAML externo.

🧱 Requisitos

  • Java 17 o superior
  • Maven 3.6+
  • Archivo de credenciales para Firebase (.json)
  • Acceso a un servidor SMTP válido
  • Base de datos Oracle con la tabla:
    • t_correos: contiene los correos pendientes de envío.

📦 Estructura del proyecto

risk-email/
├── config/
│   ├── risk-email.yml.example     # Archivo de configuración ejemplo
│   └── risk-email.yml             # Archivo real (no versionado)
├── src/                          # Código fuente
├── target/                       # Archivos compilados y .jar
├── pom.xml                       # Configuración Maven
├── LICENSE
└── README.md

⚙️ Configuración

El archivo risk-email.yml contiene los parámetros necesarios para la conexión a base de datos y configuración a múltiples servidores SMTP.

cp config/risk-email.yml.example config/risk-email.yml

Ejemplo de configuración:

# Conexión a la base de datos
datasource:
  serverName: serverName.com.py
  port: 1521
  serviceName: serviceName
  user: user
  password: password
  maximumPoolSize: 50
  minimumIdle: 5
  idleTimeout: 30000
  connectionTimeout: 10000

# Configuraciones de negocio para el envío de correos
email:
  - nombre: MAIL-OTP
    clasificacion: OTP                   # Clasificacion: OTP, AVISO, PROMOCION (u otros). Opcional
    cantidadMaximaPorLote: 100           # Cantidad maxima de SMS a enviar por lote. Opcional. Por defecto 100
    modoEnvioLote: secuencial_espaciado  # Modo de envío: paralelo, paralelo_espaciado, secuencial_espaciado, secuencial_espaciado_async
    intervaloEntreLotesMs: 10000         # Tiempo de espera entre lotes de SMS a enviar (en milisegundos)
    maximoIntentos: 5                    # Número máximo de intentos de envío permitidos de SMS. Opcional. Por defecto 5
    # Conexion al Gateway
    smtp:
      host: smtp.gmail.com
      puerto: 587
      usuario: miusuario@gmail.com
      clave: app-password
      from: noreply@miempresa.com
      sendDelayMs: 50  # Tiempo de espera entre envíos consecutivos de SMS (en milisegundos). Util para cumplir con límites del proveedor SMTP o evitar sobrecarga. Por defecto 500

⚠️ Importante: No subas el archivo risk-email.yml real al repositorio. Usá solo risk-email.yml.example.


🛠️ Compilación

mvn clean install

El JAR generado estará en:

target/risk-email.jar

▶️ Ejecución

Para ejecutar el JAR:

java -Xms500M -Xmx500M -XX:MaxDirectMemorySize=250M -server -XX:+UseG1GC -XX:+ExplicitGCInvokesConcurrent -XX:MaxGCPauseMillis=500 -jar target/risk-email.jar

Por defecto, busca el archivo config/risk-email.yml.

También podés especificar otro archivo:

java -Xms500M -Xmx500M -XX:MaxDirectMemorySize=250M -server -XX:+UseG1GC -XX:+ExplicitGCInvokesConcurrent -XX:MaxGCPauseMillis=500 -jar target/risk-email.jar path/a/otro-risk-email.yml

🧪 Testing

Podés agregar mensajes de prueba en la tabla t_correos de tu base de datos y verificar que se procesen correctamente, en cuanto al envío.


🪵 Logging

  • Se utiliza Log4j2 para los logs.
  • La configuración puede personalizarse en el archivo log4j2.xml.

🙋‍♂️ Sugerencias

¿Encontraste un error o querés proponer una mejora?
Abrí un issue para comentarlo.


🤝 Contribuciones

Las contribuciones son bienvenidas:

  1. Creá una rama con tus cambios.
  2. Enviá un pull request explicando qué mejoras hiciste.

¡Gracias por contribuir a risk-email!


📄 Licencia

Este proyecto está bajo la licencia MIT. Ver el archivo LICENSE.

MIT © 2025 – DamyGenius

About

Plataforma de envío de email

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages