Herramienta avanzada de validación de credenciales de servidores SMTP con verificación real por envío.
AVISO LEGAL: Esta herramienta está destinada exclusivamente a investigación de seguridad autorizada, auditoría de servidores SMTP en sistemas propios o pruebas de penetración con permiso escrito explícito. El uso no autorizado es ilegal. Los autores no asumen responsabilidad por el uso indebido.
- Procesamiento multi-hilo — validación paralela escalada a los núcleos de CPU disponibles
- Validación real por envío — verifica credenciales SMTP intentando una autenticación y envío real
- Pre-verificación TCP — prueba rápida de conectividad de puerto antes del handshake SMTP completo
- Categorización de resultados — separa resultados en válidos, inválidos, rechazados y fallidos
- Formato de entrada personalizado — soporta formato URL
smtp://host:usuario:contraseña - Interfaz de consola colorida — salida de estado clara con indicadores emoji
- Guardado automático — escribe resultados categorizados en el directorio
Results/
| Requisito | Versión |
|---|---|
| Windows | 10 / 11 (x64) |
| Binario precompilado | No requiere Node.js |
| Node.js (solo fuente) | 18+ |
- Descarga
multi-smtp.exedesde Releases - Colócalo en cualquier carpeta
- Ejecuta
multi-smtp.exe
git clone https://github.com/ByteCodeSecure/MultiSMTP.git
cd MultiSMTP
npm install
node main.js# Windows
build.batO manualmente:
npm install -g pkg
pkg . --out-path=build --targets node18-win-x64Ejecuta el programa y proporciona la información requerida:
multi-smtp.exeSe te pedirá:
- Ruta al archivo de lista SMTP — ruta a tu archivo con servidores SMTP
- Dirección de email de prueba — un email válido donde se enviarán los mensajes de validación
El archivo de lista SMTP debe contener un servidor por línea usando el siguiente formato URL:
smtp://mail.ejemplo.com:587:usuario@ejemplo.com:contraseña
smtp://smtp.proveedor.net:465:admin@proveedor.net:contraseñasecreta
smtps://correo.seguro.com:465:usuario@correo.seguro.com:micontraseñaFormato: smtp[s]://host:puerto:usuario:contraseña
smtp://— SMTP estándarsmtps://— SMTP con SSLhost— nombre del servidor SMTPpuerto— puerto SMTP (comunes: 25, 465, 587)usuario— nombre de usuario de autenticación (usualmente la dirección de email)contraseña— contraseña de autenticación
Todos los resultados se guardan en el directorio Results/:
| Archivo | Contenido | Estado |
|---|---|---|
Results/valid.txt |
Autenticación exitosa y envío realizado | ✅ Válido |
Results/invalid.txt |
Fallo de autenticación | ❌ Inválido |
Results/reject.txt |
Conexión aceptada pero envío rechazado | 🚫 Rechazado |
Results/fail.txt |
No se pudo conectar al servidor |
| Estado | Significado |
|---|---|
| valid | Conexión TCP exitosa + autenticación SMTP exitosa + email de prueba enviado |
| invalid | Conectado pero autenticación fallida (credenciales incorrectas) |
| reject | Conectado y autenticado pero el mensaje fue rechazado |
| fail | No se pudo establecer conexión TCP con el servidor |
MultiSMTP/
├── core/
│ └── checker.js # Orquestador principal de verificación SMTP
├── models/
│ └── smtp.js # Modelos de datos (SmtpServer, SmtpResult)
├── services/
│ └── smtp_service.js # Lógica de validación SMTP (nodemailer + tcp)
├── build/ # Binarios compilados
├── main.js # Punto de entrada de la aplicación
├── package.json
└── build.bat # Script de compilación para Windows- Verificación TCP — Abre un socket TCP crudo a
host:puertocon timeout de 5 segundos - Autenticación SMTP — Usa nodemailer para autenticarse con las credenciales proporcionadas
- Prueba de Envío — Intenta enviar un email real a la dirección de prueba proporcionada
- Resultado — Clasifica el resultado como válido / inválido / rechazado / fallido
MultiSMTP determina automáticamente el número de hilos según los núcleos de CPU disponibles:
maxConcurrent = Math.max(2, Math.floor(os.cpus().length / 2))- Puerto 465 →
secure: true(SSL/TLS) - Otros puertos →
secure: false(STARTTLS o sin cifrar) - Se aceptan certificados auto-firmados (
rejectUnauthorized: false)
Este proyecto está licenciado bajo la Licencia MIT — consulta LICENSE para detalles completos.
ÚSALO DE FORMA RESPONSABLE. SOLO PARA USO AUTORIZADO.
Los pull requests son bienvenidos. Para cambios importantes, por favor abre un issue primero.
ByteCodeSecure — GitHub