Send-MailMessage
Envía un mensaje de correo electrónico.
Sintaxis
All
Send-MailMessage
[[-Body] <String>]
[[-SmtpServer] <String>]
[[-Subject] <String>]
[-To] <String[]>
-From <String>
[-Attachments <String[]>]
[-Bcc <String[]>]
[-BodyAsHtml]
[-Encoding <Encoding>]
[-Cc <String[]>]
[-DeliveryNotificationOption <DeliveryNotificationOptions>]
[-Priority <MailPriority>]
[-ReplyTo <String[]>]
[-Credential <PSCredential>]
[-UseSsl]
[-Port <Int32>]
[<CommonParameters>]
Description
El cmdlet Send-MailMessage envía un mensaje de correo electrónico desde PowerShell.
Debe especificar un servidor simple de protocolo de transferencia de correo (SMTP) o se produce un error en el comando Send-MailMessage. Use el parámetro $PSEmailServer es la configuración SMTP predeterminada para PowerShell. Para obtener más información, consulte about_Preference_Variables.
Advertencia
El cmdlet Send-MailMessage está obsoleto. Este cmdlet no garantiza conexiones seguras a servidores SMTP. Aunque no hay ningún reemplazo inmediato disponible en PowerShell, se recomienda no usar Send-MailMessage. Para obtener más información, vea Platform Compatibility note DE0005.
Ejemplos
Ejemplo 1: Enviar un correo electrónico de una persona a otra
En este ejemplo se envía un mensaje de correo electrónico de una persona a otra.
Los parámetros From, Toy Subject requieren Send-MailMessage. En este ejemplo se usa la variable de $PSEmailServer predeterminada para el servidor SMTP, por lo que no se necesita el parámetro SmtpServer.
$sendMailMessageSplat = @{
From = 'User01 <user01@fabrikam.com>'
To = 'User02 <user02@fabrikam.com>'
Subject = 'Test mail'
}
Send-MailMessage @sendMailMessageSplat
El cmdlet Send-MailMessage usa el parámetro From para especificar el remitente del mensaje. El parámetro To especifica el destinatario del mensaje. El parámetro subject usa la cadena de texto Test mail como mensaje porque no se incluye el parámetro opcional Body.
Ejemplo 2: Enviar datos adjuntos
En este ejemplo se envía un mensaje de correo electrónico con datos adjuntos.
$sendMailMessageSplat = @{
From = 'User01 <user01@fabrikam.com>'
To = 'User02 <user02@fabrikam.com>', 'User03 <user03@fabrikam.com>'
Subject = 'Sending the Attachment'
Body = "Forgot to send the attachment. Sending now."
Attachments = '.\data.csv'
Priority = 'High'
DeliveryNotificationOption = 'OnSuccess', 'OnFailure'
SmtpServer = 'smtp.fabrikam.com'
}
Send-MailMessage @sendMailMessageSplat
El cmdlet Send-MailMessage usa el parámetro From para especificar el remitente del mensaje. El parámetro To especifica los destinatarios del mensaje. El parámetro Subject
El parámetro Attachments especifica el archivo en el directorio actual adjunto al mensaje de correo electrónico. El parámetro Priority establece el mensaje en High prioridad. El parámetro DeliveryNotificationOption especifica dos valores, OnSuccess y OnFailure. El remitente recibirá notificaciones por correo electrónico para confirmar el éxito o el error de la entrega del mensaje.
El parámetro SmtpServer establece el servidor SMTP en smtp.fabrikam.com.
Ejemplo 3: Enviar correo electrónico a una lista de distribución de correo
En este ejemplo se envía un mensaje de correo electrónico a una lista de distribución de correo.
$sendMailMessageSplat = @{
From = 'User01 <user01@fabrikam.com>'
To = 'ITGroup <itdept@fabrikam.com>'
Cc = 'User02 <user02@fabrikam.com>'
Bcc = 'ITMgr <itmgr@fabrikam.com>'
Subject = "Don't forget today's meeting!"
Credential = 'domain01\admin01'
UseSsl = $true
}
Send-MailMessage @sendMailMessageSplat
El cmdlet Send-MailMessage usa el parámetro From para especificar el remitente del mensaje. El parámetro To especifica los destinatarios del mensaje. El parámetro Cc envía una copia del mensaje al destinatario especificado. El parámetro CCO envía una copia ciega del mensaje. Una copia ciega es una dirección de correo electrónico que está oculta a los demás destinatarios. El parámetro Subject es el mensaje porque no se incluye el parámetro opcional Body.
El parámetro credential
Parámetros
-Attachments
Especifica la ruta de acceso y los nombres de archivo de los archivos que se van a adjuntar al mensaje de correo electrónico. Puede usar este parámetro o canalizar las rutas de acceso y los nombres de archivo para Send-MailMessage.
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | PsPath |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-Bcc
Especifica las direcciones de correo electrónico que reciben una copia del correo, pero que no aparecen como destinatarios del mensaje. Escriba nombres (opcional) y la dirección de correo electrónico, como Name <someone@fabrikam.com>.
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-Body
Especifica el contenido del mensaje de correo electrónico.
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | 2 |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-BodyAsHtml
Especifica que el valor del parámetro Body contiene HTML.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | BAH |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-Cc
Especifica las direcciones de correo electrónico a las que se envía una copia de carbono (CC) del mensaje de correo electrónico. Escriba nombres (opcional) y la dirección de correo electrónico, como Name <someone@fabrikam.com>.
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-Credential
Especifica una cuenta de usuario que tiene permiso para realizar esta acción. El valor predeterminado es el usuario actual.
Escriba un nombre de usuario, como usuario01 o Domain01\User01. O bien, escriba un objeto de PSCredential, como uno del cmdlet Get-Credential.
Las credenciales se almacenan en un objeto PSCredential y la contraseña se almacena como SecureString.
Nota:
Para obtener más información sobre la protección de datos de SecureString, consulte ¿Qué tan segura es SecureString?.
Propiedades del parámetro
| Tipo: | PSCredential |
| Valor predeterminado: | Current user |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-DeliveryNotificationOption
Especifica las opciones de notificación de entrega para el mensaje de correo electrónico. Puede especificar varios valores. Ninguno es el valor predeterminado. El alias de este parámetro es DNO .
Las notificaciones de entrega se envían a la dirección del parámetro From.
Los valores aceptables para este parámetro son los siguientes:
-
None: sin notificación. -
OnSuccess: notificar si la entrega se realiza correctamente. -
OnFailure: notificar si la entrega no se realiza correctamente. -
Delay: notificar si se retrasa la entrega. -
Never: no notificar nunca.
Estos valores se definen como una enumeración basada en marcas. Puede combinar varios valores para establecer varias marcas mediante este parámetro. Los valores se pueden pasar al parámetro DeliveryNotification como una matriz de valores o como una cadena separada por comas de esos valores. El cmdlet combinará los valores mediante una operación binary-OR. Pasar valores como una matriz es la opción más sencilla y también permite usar la finalización de tabulación en los valores.
Propiedades del parámetro
| Tipo: | DeliveryNotificationOptions |
| Valor predeterminado: | None |
| Valores aceptados: | None, OnSuccess, OnFailure, Delay, Never |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | DNO |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-Encoding
Especifica el tipo de codificación para el archivo de destino. El valor predeterminado es utf8NoBOM.
Los valores aceptables para este parámetro son los siguientes:
-
ascii: Utiliza la codificación para el conjunto de caracteres ASCII (7 bits). -
ansi: utiliza la codificación para la página de códigos ANSI de la cultura actual. Esta opción se agregó en PowerShell 7.4. -
bigendianunicode: codifica en formato UTF-16 utilizando el orden de bytes big-endian. -
bigendianutf32: codifica en formato UTF-32 utilizando el orden de bytes big-endian. -
oem: usa la codificación predeterminada para MS-DOS y programas de consola. -
unicode: codifica en formato UTF-16 utilizando el orden de bytes little-endian. -
utf7: codifica en formato UTF-7. -
utf8: codifica en formato UTF-8. -
utf8BOM: codifica en formato UTF-8 con Byte Order Mark (BOM) -
utf8NoBOM: codifica en formato UTF-8 sin marca de orden de bytes (BOM) -
utf32: codifica en formato UTF-32.
A partir de PowerShell 6.2, el parámetro Codificación también permite identificadores numéricos de páginas de códigos registradas (como -Encoding 1251) o nombres de cadena de páginas de códigos registradas (como -Encoding "windows-1251"). Para obtener más información, consulte la documentación de .NET para Encoding.CodePage.
A partir de PowerShell 7.4, puede utilizar el valor Ansi para el parámetro de Codificación para pasar el identificador numérico de la página de códigos ANSI de la cultura actual sin tener que especificarlo manualmente.
Nota:
UTF-7* ya no se recomienda usar. A partir de PowerShell 7.1, se escribe una advertencia si especifica utf7 para el parámetro Encoding.
Propiedades del parámetro
| Tipo: | Encoding |
| Valor predeterminado: | ASCII |
| Valores aceptados: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | SER |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-From
Se requiere el parámetro From. Este parámetro especifica la dirección de correo electrónico del remitente. Escriba un nombre (opcional) y una dirección de correo electrónico, como Name <someone@fabrikam.com>.
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-Port
Especifica un puerto alternativo en el servidor SMTP. El valor predeterminado es 25, que es el puerto SMTP predeterminado.
Propiedades del parámetro
| Tipo: | Int32 |
| Valor predeterminado: | 25 |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-Priority
Especifica la prioridad del mensaje de correo electrónico. Normal es el valor predeterminado. Los valores aceptables para este parámetro son Normal, High y Low.
Propiedades del parámetro
| Tipo: | MailPriority |
| Valor predeterminado: | Normal |
| Valores aceptados: | Normal, High, Low |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-ReplyTo
Especifica direcciones de correo electrónico adicionales (distintas de la dirección From) que se usarán para responder a este mensaje.
Escriba nombres (opcional) y la dirección de correo electrónico, como Name <someone@fabrikam.com>.
Este parámetro se introdujo en PowerShell 6.2.
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-SmtpServer
Especifica el nombre del servidor SMTP que envía el mensaje de correo electrónico.
El valor predeterminado es el valor de la variable de preferencia $PSEmailServer. Si no se establece la variable de preferencia y no se usa este parámetro, se produce un error en el comando Send-MailMessage.
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | $PSEmailServer |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | Nombre de equipo |
Conjuntos de parámetros
(All)
| Posición: | 3 |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-Subject
No se requiere el parámetro Subject. Este parámetro especifica el asunto del mensaje de correo electrónico.
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | submarino |
Conjuntos de parámetros
(All)
| Posición: | 1 |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-To
Se requiere el parámetro To. Este parámetro especifica la dirección de correo electrónico del destinatario. Escriba nombres (opcional) y la dirección de correo electrónico, como Name <someone@fabrikam.com>.
Propiedades del parámetro
| Tipo: | String[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | 0 |
| Mandatory: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
-UseSsl
El protocolo Capa de sockets seguros (SSL) se usa para establecer una conexión segura con el equipo remoto para enviar correo. De forma predeterminada, no se usa SSL.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
String
Puede canalizar la ruta de acceso y los nombres de archivo de los datos adjuntos a este cmdlet.
Salidas
None
Este cmdlet no devuelve ninguna salida.
Notas
El cmdlet Send-MailMessage está obsoleto. Para obtener más información, vea Platform Compatibility note DE0005. Este cmdlet no garantiza conexiones seguras a servidores SMTP.
DE0005 sugiere usar la biblioteca de terceros, MailKit. Si usa Exchange Online, puede usar el Send-MgUserMail desde el SDK de PowerShell de Microsoft Graph.