Powershell Enviar correo | Guía para enviar correo de Powershell con ejemplos
Introducción a PowerShell Enviar correo
Para enviar un mensaje de correo electrónico desde PowerShell se utiliza el cmdlet Send-MailMessage. Muchas veces, el administrador puede requerir que se ejecute un script para generar algunos informes, como cuándo fue el último reinicio, cuántas veces el servidor estuvo inactivo en las últimas 24 horas, etc. En este escenario, se debe enviar un correo electrónico con el informe. al administrador. Para ello, se utiliza el cmdlet Send-MailMessage. El parámetro principal de este cmdlet es el servidor SMTP. Debe haber un servidor SMTP válido configurado en el entorno para poder enviar y recibir correos electrónicos. En caso de que no se mencione ningún servidor SMTP, PowerShell tomará la variable establecida en la variable $PSEmailServer.
Hadoop, ciencia de datos, estadísticas y otros
Sintaxis y parámetros
A continuación veremos la sintaxis y los parámetros.
Sintaxis
A continuación se muestra la sintaxis.
Código:
NAME
Send-MailMessage
SYNTAX
Send-MailMessage [-To] <string[]> [-Subject] <string> [[-Body] <string>] [[-SmtpServer] <string>] -From <string> [-Attachments <string[]>] [-Bcc <string[]>]
[-BodyAsHtml] [-Encoding <Encoding>] [-Cc <string[]>] [-DeliveryNotificationOption {None | OnSuccess | OnFailure | Delay | Never}] [-Priority {Normal | Low | High}]
[-Credential <pscredential>] [-UseSsl] [-Port <int>] [<CommonParameters>]
ALIASESParámetros
A continuación se muestran los parámetros:
- Adjuntos: este parámetro indica los archivos que deben agregarse como archivos adjuntos en el correo electrónico que se enviará. Su tipo es una cadena. Su alias es PSPath. El valor predeterminado es ninguno. Acepta entradas de canalización pero no acepta caracteres comodín.
- Cco: esto indica las direcciones de correo electrónico de los destinatarios que recibirán el correo electrónico pero que no se marcarán directamente. Su tipo es una cadena. Su valor predeterminado es ninguno. Acepta entradas de canalización pero no acepta caracteres comodín.
- Cuerpo: Esto indica el cuerpo principal del correo electrónico. Su tipo es una cadena. Su valor predeterminado es ninguno. Acepta entradas de canalización pero no acepta caracteres comodín.
- BodyAsHtml: Esto indica el cuerpo del mensaje que se convertirá como HTML. Su tipo es el parámetro de cambio. Su alias es BAH. Su valor predeterminado es ninguno. Acepta entradas de canalización pero no acepta caracteres comodín.
- CC: Denota los destinatarios que deben recibir la copia carbón de este mensaje. Su tipo es una cadena. Su valor predeterminado es ninguno. Acepta entradas de canalización pero no acepta caracteres comodín.
- Credencial: esto indica las credenciales que se deben usar para el cmdlet send-mailmessage. De forma predeterminada, se toman las credenciales del usuario actual. Su tipo es PSCredential. Su valor predeterminado es el usuario actual. Acepta entradas de canalización pero no acepta caracteres comodín.
- DeliveryNotificationOption: Esto indica el estado de notificación del correo electrónico enviado. Pueden ser varios valores. Su alias es DNO. Su valor predeterminado es ninguno. La dirección especificada recibirá la notificación. Acepta entradas de canalización pero no acepta caracteres comodín. Los valores permitidos son
- Ninguno: Esto significa que no se envía ninguna notificación.
- OnSuccess: Esto indica que se envía una notificación si el correo se entrega correctamente.
- Onfailure: Esto envía una notificación si el correo no se entrega.
- Retraso: Esto envía una notificación si hay un retraso en el envío del correo electrónico.
- Nunca: Esto indica cualquier notificación.
Codificación: Esto indica el tipo de codificación. Los valores aceptables son los siguientes:
- ASCII
- OEM
- Unicódigo
- UTF7
- UTF8
- UTF8BOM
- UTF8NoBOM
- UTF32
Su tipo es codificación y el alias es BE. El valor predeterminado es UTF8NoBOM. Acepta entradas de canalización pero no acepta caracteres comodín.
- De: Este es un parámetro obligatorio e indica la dirección que debe estar en el correo electrónico. Esto denota el remitente. Su tipo es una cadena. Su valor predeterminado es el usuario actual. Acepta entradas de canalización pero no acepta caracteres comodín.
- Puerto: Indica el número de puerto del servidor SMTP. Por defecto, es 25. Su tipo es Int32. Acepta entradas de canalización pero no acepta caracteres comodín.
- Prioridad: Esto indica la prioridad del correo electrónico. El valor predeterminado es normal. Los otros valores aceptables son altos y bajos. Su tipo es MailPriority. Acepta entradas de canalización pero no acepta caracteres comodín.
- Responder a: Esto indica las direcciones de correo electrónico a las que el receptor puede responder además de la dirección de remitente. Su tipo es una cadena y su valor predeterminado es ninguno. Acepta entradas de canalización pero no acepta caracteres comodín.
- Servidor SMTP: Esto indica el servidor SMTP. El valor predeterminado es el valor presente en la variable de entorno $PSEmailServer. Su tipo es cadena y su alias es ComputerName. Acepta entradas de canalización pero no acepta caracteres comodín.
- Asunto: Esto indica el asunto del correo electrónico. Este es un parámetro obligatorio. Su tipo es una cadena. Su alias es sub. El valor predeterminado es ninguno. Acepta entradas de canalización pero no acepta caracteres comodín.
- Para: Esto indica la dirección del destinatario. Este es un parámetro obligatorio. Se permiten varias direcciones y están separadas por “; ”. Su tipo es una cadena y su valor predeterminado es ninguno. Acepta entradas de canalización pero no acepta caracteres comodín. Acepta entradas de canalización pero no acepta caracteres comodín.
- UseSsl: Se utiliza para la transmisión segura de correo electrónico. Su tipo es el parámetro de cambio. Su valor predeterminado es ninguno. Acepta entradas de canalización pero no acepta caracteres comodín.
Ejemplo para implementar PowerShell Enviar correo
En el siguiente script, modifique la dirección de origen($from), la dirección de destino($to) y el servidor smtp($SmtpServer) y la ruta del archivo adjunto($testattachment) con sus valores apropiados.
Código:
Write-Host "Welcome to the demo of sending email in PowerShell"
$from="[email "
Write-Host "From address will be" $from
$to="************"
$subject="This is an example of test mail from PowerShell"
Write-Host "Subject of the email is" $subject
$body="This is a test email. This is sent from powershell using Send-MailMessage Cmdlet"
Write-Host "The body of the email will be" $body
$SmtpServer = "***********"
$html=""
$actualbody = "<html>
<style>
BODY{font-family: Arial; font-size: 12pt;}
H1{font-size: 26px;}
H2{font-size: 24px;}
H3{font-size: 08px;}
</style>
<body>
<h1 align=""center"">Test Email</h1>
<h3 align=""center"">$body</h3>
<p>Welcome</p>
<p>Test email</p><br/>" + $html
$testattachment="C:\Users \Desktop\Articles\Mar\PowerShell Wild cards.docx"
Send-MailMessage -From $from -to $to -Subject $subject -SmtpServer $SmtpServer -Body $actualbody -BodyAsHtml -Encoding ([System.Text.Encoding]::UTF8)
Write-Host "Email Sent"Salida:
A continuación se muestra cómo se ve el correo electrónico recibido.
Conclusión
Por lo tanto, el artículo cubrió en detalle cómo se envía un correo electrónico desde PowerShell con la ayuda del cmdlet Send-MailMessage. Explicó los diferentes parámetros que se requieren, su tipo y mostró un script de ejemplo de cómo enviar un correo electrónico. El parámetro más importante que se requiere es el servidor SMTP, a menos que esté configurado un servidor SMTP, no se enviará el correo electrónico. La forma de aprender más sobre el cmdlet se exploraría escribiendo scripts de muestra.


