CLI tool for email processing with domain migration
Project description
📧 Procesador de Correos - Migración de Dominios Automatizada
Transforma 10,000 correos en 3 minutos. Sistema profesional de migración de dominios con arquitectura hexagonal, validación robusta y despliegue serverless.
⚡ Inicio Rápido (30 segundos)
Ejemplo 1: Desde lista inline
# Instalar
pip install email-processor-cli
# Usar
email-processor --input-type list \
--input "juan.perez@old.com,maria.garcia@old.com" \
--new-domain company.com \
--output-type csv \
--output result.csv
# Resultado:
[OK] Processed 2/2 emails
[OK] Error log: error_log.txt
[OK] Summary: summary.txt
Ejemplo 2: Desde archivo TXT
# Crear archivo de entrada
echo "juan.perez@old.com" > emails.txt
echo "maria.garcia@old.com" >> emails.txt
# Procesar
email-processor --input-type file \
--input emails.txt \
--new-domain nuevo.com \
--output-type csv \
--output result.csv
Archivo generado (result.csv):
Nombre,Apellido,Correo Original,Correo Nuevo
Juan,Perez,juan.perez@old.com,juan.perez@company.com
Maria,Garcia,maria.garcia@old.com,maria.garcia@company.com
📚 Documentación Técnica
🎯 Documentos Principales (Prueba Técnica)
| Documento | Qué Demuestra | Enlace |
|---|---|---|
| 📘 PDD | Análisis de proceso AS-IS, reglas de negocio, identificación de oportunidades de automatización | Ver PDD |
| 🏗️ SDD | Arquitectura hexagonal, diseño técnico, decisiones de implementación, patrones de diseño | Ver SDD |
| 🔄 n8n | Integración con herramientas de automatización, workflows visuales, casos de uso reales | Ver n8n |
📖 Guías de Implementación
- 🚀 Inicio Rápido - Instalación y primeros pasos
- 📦 Despliegue - CLI, API REST, AWS Lambda con Terraform
- 💻 Ejemplos de Código - Uso como CLI, API y librería Python
🎬 Demo en Acción
CLI Básico
Procesamiento CSV
Validación de Errores
Integración con n8n
🚀 ¿Por Qué Este Procesador?
| Antes (Manual) | Después (Automatizado) | Mejora |
|---|---|---|
| ⏱️ 30-45 minutos | 3-5 minutos | 85% más rápido |
| ❌ 5-10% errores | <1% errores | 90% más preciso |
| 📊 1,000 correos/día | 10,000+ correos/día | 10x capacidad |
| 🕐 Solo horario laboral | 24/7 disponible | 3x disponibilidad |
| 💰 $5 por proceso | $0.08 por proceso | 98% más económico |
✨ Características Principales
- 🎯 Validación Inteligente - 5 reglas de negocio que garantizan formato correcto
- 🔄 Multi-Interfaz - CLI, API REST, Librería Python, AWS Lambda
- 📦 Sin Configuración - Funciona out-of-the-box, sin setup complejo
- 🔒 Seguro - Validación estricta, sin persistencia de datos sensibles
- 📈 Escalable - De 10 a 10,000 correos sin cambios
- 📝 Trazable - Logs automáticos de cada operación
- 📊 Múltiples Formatos - CSV, Excel, JSON, TXT, Inline, Silent
🎯 Casos de Uso
1️⃣ Migración Corporativa (CSV)
# Migrar 1000 empleados de @oldcompany.com a @newcompany.com
email-processor --input-type file \
--input employees.txt \
--new-domain newcompany.com \
--output-type csv \
--output migrated.csv
1️⃣.1 Migración a Excel
# Generar reporte en Excel para análisis
email-processor --input-type file \
--input employees.txt \
--new-domain newcompany.com \
--output-type excel \
--output migrated.xlsx
1️⃣.2 Migración a TXT
# Generar archivo de texto plano
email-processor --input-type file \
--input employees.txt \
--new-domain newcompany.com \
--output-type txt \
--output migrated.txt
1️⃣.3 Salida en Consola (Inline)
# Ver resultados directamente en consola
email-processor --input-type list \
--input "juan.perez@old.com,maria.garcia@old.com" \
--new-domain newcompany.com \
--output-type inline
# Salida:
# Nombre,Apellido,Correo Original,Correo Nuevo
# Juan,Perez,juan.perez@old.com,juan.perez@newcompany.com
# Maria,Garcia,maria.garcia@old.com,maria.garcia@newcompany.com
2️⃣ API para Integraciones
# Integrar con tus sistemas existentes
curl -X POST https://api.company.com/transform \
-H "x-api-key: YOUR_KEY" \
-d '{"emails":["user@old.com"],"new_domain":"new.com"}'
3️⃣ Uso Programático
from email_processor import EmailProcessor
processor = EmailProcessor()
result = processor.process(
emails=["juan.perez@old.com"],
new_domain="company.com"
)
4️⃣ Automatización con n8n
Importa examples/n8n_workflow.json y automatiza flujos completos visualmente.
🎯 Validación Inteligente
Formato requerido: nombre.apellido@dominio.com
✅ Válidos:
juan.perez@company.commaría.garcía@empresa.comjosé.lópez@domain.com
❌ Rechazados automáticamente:
user@company.com→ Falta punto separadorj.p@company.com→ Nombre/apellido muy cortojuan123.perez@company.com→ Números no permitidosuser@@company.com→ Múltiples @
Ver reglas completas en la documentación.
📊 Formatos de Salida
Todos los formatos generan 4 campos según el PDD:
- Nombre - Nombre capitalizado
- Apellido - Apellido capitalizado
- Correo Original - Email de entrada
- Correo Nuevo - Email con nuevo dominio
| Formato | Extensión | Uso Recomendado | Comando |
|---|---|---|---|
| 📊 CSV | .csv |
Análisis de datos, importación masiva | --output-type csv --output file.csv |
| 📗 Excel | .xlsx |
Reportes ejecutivos, presentaciones | --output-type excel --output file.xlsx |
| 📝 TXT | .txt |
Archivos de texto plano, scripts | --output-type txt --output file.txt |
| 📜 JSON | .json |
APIs, integraciones, aplicaciones | --output-type json --output file.json |
| 💻 Inline | Consola | Verificación rápida, debugging | --output-type inline |
| 🔇 Silent | Ninguno | Procesos automatizados, pipelines | --output-type silent |
Ejemplo de salida (todos los formatos):
Nombre,Apellido,Correo Original,Correo Nuevo
Juan,Perez,juan.perez@old.com,juan.perez@new.com
Maria,Garcia,maria.garcia@old.com,maria.garcia@new.com
📦 Instalación
pip install email-processor-cli
Ver Guía de Instalación para más opciones.
🏗️ Arquitectura y Diseño
Patrones Implementados
- ✅ Hexagonal (Ports & Adapters) - Núcleo de negocio aislado de infraestructura
- ✅ Domain-Driven Design - Lógica de negocio en el dominio
- ✅ Dependency Injection - Bajo acoplamiento entre componentes
- ✅ Multi-interfaz - CLI, API REST, Librería Python, AWS Lambda
Infraestructura
- ✅ Stateless - Escalable horizontalmente sin límites
- ✅ IaC con Terraform - Infraestructura como código reproducible
- ✅ Serverless AWS - Lambda + API Gateway
- ✅ CI/CD Ready - Preparado para pipelines de despliegue
Detalles completos: Ver SDD
📄 Información del Proyecto
Autor: Anderson Taguada | Licencia: MIT | GitHub: @anders2d
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file email_processor_cli-2025.10.28.192459.tar.gz.
File metadata
- Download URL: email_processor_cli-2025.10.28.192459.tar.gz
- Upload date:
- Size: 60.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd818a09ab96f9569fb2b1c9d28ad61403c32e549d08a7d9517dae4faeb284eb
|
|
| MD5 |
a1633a464821d2c7efdb77a8939d2ec3
|
|
| BLAKE2b-256 |
0aabc1875a1ae830bb660bceec1a80e601c89356f7eb1c818673b23fc7aee9bd
|
File details
Details for the file email_processor_cli-2025.10.28.192459-py3-none-any.whl.
File metadata
- Download URL: email_processor_cli-2025.10.28.192459-py3-none-any.whl
- Upload date:
- Size: 26.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cd127c368fa10257d8dd75fdf359e827d56b90100aff9b1eed0a7194cc69dc2
|
|
| MD5 |
8865e8d28c2b397d3aff1320e6daed7f
|
|
| BLAKE2b-256 |
610107335fdc80d402d6a402a1e48ecfb2f1b5474660c7fc433726fda34635f4
|