Cuando automatizamos tareas mediante scripts, como los que programamos con PowerShell, surge una necesidad recurrente: notificar al administrador o al usuario final sobre el resultado del proceso. ¿Se ejecutó correctamente? ¿Hubo errores? ¿Qué datos generó el script? Una forma eficaz de responder automáticamente a estas preguntas es enviar un correo electrónico al finalizar la ejecución.
Aquí es donde entra en juego Brevo, una plataforma de comunicaciones que permite enviar correos electrónicos, mensajes SMS y mensajes por WhatsApp desde tus aplicaciones o scripts. Su facilidad de uso y su plan gratuito con soporte SMTP la convierten en una opción ideal para quienes buscan una solución rápida, fiable y económica.
En esta guía aprenderás:
Tabla de contenidos
Enviar correos electrónicos desde PowerShell puede parecer una tarea sencilla, pero en realidad permite resolver desafíos importantes de comunicación, monitoreo y mantenimiento en entornos automatizados. A continuación, algunos escenarios donde esta funcionalidad marca una gran diferencia:
Supongamos que has programado un script para realizar copias de seguridad todas las noches. ¿Cómo sabrías si se ejecutó correctamente o si falló por algún motivo? Enviar un correo con el resumen del log es una forma eficiente de mantenerte informado sin tener que revisar manualmente cada día.
Puedes usar PowerShell para monitorear servicios, espacio en disco, disponibilidad de aplicaciones, etc. Si ocurre algo crítico —como que un servicio esencial se detiene o el espacio libre en el disco C: cae por debajo de un umbral— el script puede enviar automáticamente un correo de alerta.
PowerShell es ampliamente utilizado para tareas administrativas como la creación de usuarios, configuración de políticas o instalación de software. Enviar un resumen por correo de estas tareas mejora la trazabilidad y facilita la comunicación entre equipos técnicos.
Brevo (anteriormente conocido como Sendinblue) es una plataforma integral de marketing y comunicación que permite enviar correos electrónicos transaccionales, campañas promocionales, mensajes SMS y mensajes por WhatsApp. Puedes integrarla fácilmente en tus scripts o aplicaciones mediante su API o mediante una conexión SMTP estándar.
Principales características de Brevo:
Para comenzar a enviar correos desde PowerShell utilizando Brevo, primero necesitas crear una cuenta gratuita. El proceso es rápido y sencillo:
smtp-relay.brevo.com) y podrás generar una contraseña SMTP específica para conexiones externas.Una vez que tienes tu cuenta de Brevo configurada y las credenciales SMTP a mano, ya puedes crear un script en PowerShell (versión 5.1 o superior) para enviar correos electrónicos de forma automática. Esto es especialmente útil para notificar resultados, enviar alertas o compartir logs generados por tus scripts.
A continuación, te muestro un ejemplo funcional que toma como entrada un archivo de log y envía su contenido por correo electrónico:
param([string]$LogFile) # Configura tus datos $from = "user@from.com" $to = "user@to.com" $subject = "Informe automático desde PowerShell" $smtpServer = "smtp-relay.brevo.com" $smtpPort = 587 $user = "user@smtp-brevo.com" $password = "brevo-password" # Contenido del log (últimas 30 líneas) $body = Get-Content $LogFile | Select-Object -Last 30 | Out-String # Configura el cliente SMTP $smtp = New-Object Net.Mail.SmtpClient($smtpServer, $smtpPort) $smtp.EnableSsl = $true $smtp.Credentials = New-Object System.Net.NetworkCredential($user, $password) # Crea el mensaje $message = New-Object System.Net.Mail.MailMessage $message.From = $from $message.To.Add($to) $message.Subject = $subject $message.Body = $body # Enviar el correo $smtp.Send($message)
Importante: recuerda reemplazar las direcciones de correo, usuario SMTP y contraseña por tus propios datos de configuración.
Este script recibe un parámetro llamado -LogFile que indica la ruta del archivo de log a enviar. Puedes ejecutarlo desde PowerShell de la siguiente forma:
.\EnviarCorreo.ps1 -LogFile "C:\Logs\log.txt"
El cuerpo del mensaje incluirá las últimas 30 líneas del archivo especificado, lo cual es útil para obtener un resumen reciente del proceso automatizado.
Si quieres que el cuerpo del mensaje admita formato HTML (por ejemplo, para usar negritas, colores o tablas), simplemente añade esta línea antes de enviar el mensaje:
$message.IsBodyHtml = $true
Y asegúrate de que la variable $body contenga contenido HTML válido.
Si deseas que el mensaje se envíe a varios destinatarios, simplemente añade más direcciones utilizando .To.Add():
$message.To.Add("otro@correo.com")
$message.To.Add("tercero@correo.com") También puedes usar .Cc.Add() o .Bcc.Add() si necesitas copiar o enviar como copia oculta a otros usuarios.
En lugar de (o además de) incluir el contenido del log en el cuerpo del mensaje, puedes adjuntar el archivo completo. Esto es útil si el log es muy extenso o si deseas conservar el formato original.
$attachment = New-Object System.Net.Mail.Attachment($LogFile) $message.Attachments.Add($attachment)
Puedes adjuntar cualquier archivo que necesites: informes PDF, archivos CSV, capturas de pantalla, etc.
Para evitar que el script falle silenciosamente en caso de problemas de red o configuración, se recomienda encapsular el envío del correo dentro de un bloque try/catch:
try {
$smtp.Send($message)
Write-Host "Correo enviado correctamente."
} catch {
Write-Error "Error al enviar el correo: $_"
} Esto te permitirá detectar errores como credenciales incorrectas, conexión fallida al servidor SMTP o problemas con los destinatarios.
Enviar correos electrónicos desde PowerShell utilizando Brevo es una solución potente y versátil para automatizar notificaciones en entornos Windows. Ya sea para compartir logs, emitir alertas o enviar reportes periódicos, incorporar esta funcionalidad en tus scripts mejora significativamente el control, la trazabilidad y la capacidad de reacción ante eventos en tus sistemas.
Brevo destaca como plataforma porque combina simplicidad, fiabilidad y un plan gratuito generoso, todo sin necesidad de configurar ni mantener un servidor SMTP propio. Su integración con PowerShell es directa y accesible incluso para administradores o desarrolladores con poca experiencia previa en automatización de notificaciones por correo.
Algunas recomendaciones finales para mejorar el uso de este herramienta:
Nota: La imagen de este artículo fue generada utilizando un modelo de inteligencia artificial.
En un entrada previa explicamos qué son el WOE y el IV y por qué…
Seguimos evolucionando el laboratorio de Analytics Lane y hoy lanzamos la versión 1.1, disponible en:…
“El interés compuesto es la octava maravilla del mundo. El que lo entiende lo gana…
Tienes los datos de ventas de tres productos en dos años distintos y quieres saber…
Imagina la situación. Tu equipo lleva tres años con un modelo en producción. No es…
Cuando un banco evalúa una solicitud de crédito necesita responder a una pregunta aparentemente simple:…
This website uses cookies.