JoeSMTP
Plataforma autoservicio de email y SMS marketing, construida como módulo de JoeCMS: contactos, campañas, automatizaciones, formularios, API pública y pasarela SMTP.
El problema
Quien escribe a sus clientes tiene dos extremos: plataformas comerciales potentes pero caras, con el precio ligado a los contactos guardados, o scripts caseros que funcionan hasta que llegan las bajas, los rebotes y la reputación del remitente.
JoeSMTP está en medio: un panel completo con créditos prepago en lugar de una suscripción por contacto, y la libertad de cambiar de proveedor de envío sin que quien lo usa lo note.
Cómo funciona
Estructura
Contactos por proyecto con campos personalizados, listas estáticas y segmentos por reglas recalculados en cada envío. Campañas de email y SMS con editor visual y campos personalizados, automatizaciones con disparadores, esperas, horas de silencio y evento de salida, formularios de suscripción para incrustar con doble opt-in.
Flujo de uso
Una campaña pasa por un asistente por pasos: datos, destinatarios, contenido, cabecera y pie, envío o programación. El coste en créditos se fija al crearla, así un cambio de tarifa no reescribe la historia; los créditos se consumen por lotes con caducidad.
Decisiones técnicas
Ningún proveedor está fijado en el código: un adaptador por proveedor detrás de una interfaz común, elegido en cascada entre proyecto, valor por defecto del sistema y configuración. Cambiar de proveedor es una opción en un panel, no un despliegue. Entregas, aperturas, clics y rebotes llegan por webhook a una única tabla de eventos.
Límites conocidos
Las limitaciones de los proveedores aparecen con la integración ya terminada: un adaptador de SMS está completo pero sigue apagado hasta que el proveedor habilite la cuenta. Los despliegues son manuales, por eso el código comprueba el esquema antes de leer una columna nueva.
Números
| Endpoints de servicio | 96 |
|---|---|
| Páginas del panel | 35 |
| Endpoints de la API pública | 8 |
| Proveedores de envío integrados | 6 |
| Migraciones versionadas | 38 |
| Tareas cron en producción | 6 |
Stack
- PHP
- MySQL
- JoeCMS
- JavaScript
- Haraka (SMTP)
- OpenAPI