Enviar correos electrónicos utilizando el cmdlet de PowerShell Enviar mensaje de correo – TrucosInformaticos

Powershell

Puedes usar el Enviar mensaje de correo cmdlet para enviar notificaciones por correo electrónico a través de un servidor SMTP. El uso más común de Send-MailMessage en los scripts de PowerShell es cuando necesita enviar notificaciones a su buzón de correo o al de un usuario. En este artículo, veremos algunos ejemplos de cómo usar el cmdlet Send-MailMessage para enviar correos electrónicos.

Si desea enviar una carta, debe especificar valores en los siguientes parámetros:

  • De: dirección SMTP del remitente
  • Para: correo electrónico del destinatario
  • Asunto — asunto del correo electrónico
  • SmtpServer: nombre de host o dirección IP del servidor SMTP

Entonces, el comando mínimo de PowerShell que necesita para enviar un mensaje de correo electrónico es el siguiente:

Send-MailMessage -From "[email protected]" -To "[email protected]" -Subject "Test PowerShell Message" -Body "Message body" -SmtpServer smtp.theitbros.com

Este comando le permite enviar correos electrónicos solo a través de un servidor SMTP con autenticación anónima (retransmisión interna o abierta).

Nota. Ejemplo de configuración de retransmisión SMTP de AWS SES.

Si su servidor requiere autenticación básica, puede especificar las credenciales. Agregue la siguiente opción al comando anterior:

-Credential theitbros\admin1

Si necesita enviar un correo electrónico a varios destinatarios, puede:

Los tres tipos de destinatarios se pueden especificar en un solo comando Send-MailMessage.

Puede especificar una lista de archivos para adjuntar al correo electrónico:

-Attachments 'C:\Reports\2023april.log','C:\Report\2023april_users.csv'

Puede adjuntar todos los archivos en el directorio especificado a la carta en una sola operación:

Get-ChildItem -Path 'C:\reports' | Send-MailMessage …

Nota. La declaración que contiene los comandos Get-ChildItem y For-Each le permite recorrer todos los archivos en la carpeta especificada.

En el mundo real, la mayoría de los servidores SMTP requieren que use SSL para conectarse, por lo que deberá especificar parámetros adicionales -Usar SSL y -Puerto 587.

En el siguiente ejemplo, le mostraremos cómo usar PowerShell para enviar correos electrónicos a través del servidor SMTP de Gmail.

Primero, debe configurar su cuenta de Google:

  1. Inicie sesión en su cuenta de Google;
  2. Vaya a https://myaccount.google.com/security y habilite la «Verificación en dos pasos»;
  3. A continuación, desplácese hacia abajo hasta la Contraseñas de aplicaciones sección;
  4. Cree una nueva contraseña: escriba su nombre (PowerShell_SMTP) y haga clic en Generar; powershell enviar mensaje de correo
  5. Copie su contraseña de aplicación de 16 caracteres. Esta es la contraseña que usaremos para autenticarnos en Gmail SMTP desde PowerShell.

Pista. Anteriormente, le mostramos cómo conectar el buzón de Gmail en Outlook con el uso de una contraseña de aplicación.

Ahora puede enviar un correo electrónico a través del SMTP de Gmail:

$Sender="[email protected]"

$AppPassword = "gmail_app_password" | ConvertTo-SecureString -AsPlainText –Force

$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $Sender, $AppPassword

Send-MailMessage -Credential $credential -UseSSL -SmtpServer 'smtp.gmail.com' -Port 587 -From $Sender -To '[email protected]' -Subject 'Send Messahe via Gmail SMTP' -Body "This message has been sent from the host $($env:computername)"

Abra el buzón del destinatario y verifique si el correo electrónico se entregó correctamente.

powershell enviar correo

5/5 - (69 votos)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *