🇪🇸 Módulo: smtp_send

Descripción

Envía un correo de prueba utilizando conexión SMTP directa mediante netcat (si está disponible) o openssl s_client como alternativa. Este módulo permite validar conectividad SMTP y enviar resultados de automatización desde entornos sin privilegios de root ni software adicional.

Ubicación

core/modules/smtp_send.sh

Argumentos requeridos

Clave Descripción
smtp_server Dirección del servidor SMTP
smtp_port Puerto SMTP (por defecto 587)
smtp_user Usuario para autenticación SMTP
smtp_pass Contraseña para autenticación SMTP
from Dirección de correo del remitente
to Dirección de correo del destinatario
subject Asunto del mensaje (opcional, por defecto: “Prueba desde ShFlow”)
body Cuerpo del mensaje (opcional, por defecto: texto genérico)

Dependencias

  • base64
  • Uno de los siguientes:
    • nc (netcat)
    • openssl

Ejemplo de uso

tasks:
  - name: Enviar correo de prueba
    module: smtp_send
    args:
      smtp_server: smtp.example.com
      smtp_port: 587
      smtp_user: usuario@example.com
      smtp_pass: ClaveSuperSecreta123
      from: usuario@example.com
      to: destino@correo.com
      subject: Prueba desde ShFlow
      body: Este es un correo de prueba enviado desde el módulo smtp_send.

Trazas esperadas

📡 [smtp_send] Preparando envío a destino@correo.com vía smtp.example.com:587...
🔧 Usando netcat para conexión SMTP...
✅ [smtp_send] Comando ejecutado. Verifica si el correo fue recibido.

Notas

  • Si nc está disponible, se usa por defecto para mayor visibilidad del intercambio SMTP.
  • Si nc no está disponible, se usa openssl s_client -starttls smtp.
  • El módulo no realiza validación de certificados ni verificación de entrega.
  • Ideal para entornos sin privilegios, pruebas de conectividad o envío de trazas post-automatización.