Send-MailMessage
Envia uma mensagem de email.
Sintaxe
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
O cmdlet Send-MailMessage envia uma mensagem de email de dentro do PowerShell.
Você deve especificar um servidor SMTP (Simple Mail Transfer Protocol) ou o comando Send-MailMessage falhar. Use o parâmetro SmtpServer ou defina a variável $PSEmailServer como um servidor SMTP válido.
O valor atribuído a $PSEmailServer é a configuração SMTP padrão para o PowerShell. Para obter mais informações, consulte sobre_Variáveis_de_Preferência.
Aviso
Send-MailMessage está obsoleto. Esse cmdlet não garante conexões seguras com servidores SMTP. Embora não haja nenhuma substituição imediata disponível no PowerShell, recomendamos que você não use Send-MailMessage. Para obter mais informações, consulte Platform Compatibility note DE0005.
Exemplos
Exemplo 1: enviar um email de uma pessoa para outra pessoa
Este exemplo envia uma mensagem de email de uma pessoa para outra pessoa.
Os parâmetros From, Toe Subject são exigidos por Send-MailMessage. Este exemplo usa a variável de
$sendMailMessageSplat = @{
From = 'User01 <user01@fabrikam.com>'
To = 'User02 <user02@fabrikam.com>'
Subject = 'Test mail'
}
Send-MailMessage @sendMailMessageSplat
O cmdlet Send-MailMessage usa o parâmetro From para especificar o remetente da mensagem. O parâmetro To especifica o destinatário da mensagem. O parâmetro Subject usa a cadeia de caracteres de texto de email de teste como a mensagem porque o parâmetro Body opcional não está incluído.
Exemplo 2: Enviar um anexo
Este exemplo envia uma mensagem de email com um anexo.
$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
O cmdlet Send-MailMessage usa o parâmetro From para especificar o remetente da mensagem. O parâmetro To especifica os destinatários da mensagem. O parâmetro Subject descreve o conteúdo da mensagem. O parâmetro Body é o conteúdo da mensagem.
O parâmetro Attachments especifica o arquivo no diretório atual anexado à mensagem de email. O parâmetro Priority define a mensagem como High prioridade. O parâmetro DeliveryNotificationOption especifica dois valores, OnSuccess e OnFailure. O remetente receberá notificações por email para confirmar o êxito ou a falha da entrega da mensagem.
O parâmetro SmtpServer define o servidor SMTP como smtp.fabrikam.com.
Exemplo 3: Enviar email para uma lista de endereçamento
Este exemplo envia uma mensagem de email para uma lista de endereçamento.
$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
O cmdlet Send-MailMessage usa o parâmetro From para especificar o remetente da mensagem. O parâmetro To especifica os destinatários da mensagem. O parâmetro Cc envia uma cópia da mensagem para o destinatário especificado. O parâmetro Cco envia uma cópia cega da mensagem. Uma cópia cega é um endereço de email oculto dos outros destinatários. O parâmetro Subject é a mensagem porque o parâmetro opcional Body não está incluído.
O parâmetro de Credenciais especifica que as credenciais de um administrador de domínio são usadas para enviar a mensagem. O parâmetro UseSsl especifica que a SSL (Secure Socket Layer) cria uma conexão segura.
Parâmetros
-Attachments
Especifica o caminho e os nomes de arquivo dos arquivos a serem anexados à mensagem de email. Você pode usar esse parâmetro ou canalizar os caminhos e nomes de arquivo para Send-MailMessage.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | PsPath |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | True |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Bcc
Especifica os endereços de email que recebem uma cópia do email, mas não estão listados como destinatários da mensagem. Insira nomes (opcional) e o endereço de email, como Name <someone@fabrikam.com>.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Body
Especifica o conteúdo da mensagem de email.
Propriedades do parâmetro
| Tipo: | String |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | 2 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-BodyAsHtml
Especifica que o valor do parâmetro corpo do
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | BAH |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Cc
Especifica os endereços de email para os quais uma cópia de carbono (CC) da mensagem de email é enviada. Insira nomes (opcional) e o endereço de email, como Name <someone@fabrikam.com>.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Credential
Especifica uma conta de usuário que tem permissão para executar essa ação. O padrão é o usuário atual.
Digite um nome de usuário, como User01 ou Domain01\User01. Ou insira um objeto PSCredential
As credenciais são armazenadas em um objeto PSCredential e a senha é armazenada como um SecureString.
Observação
Para obter mais informações sobre a proteção de dados do SecureString, consulte Quão seguro é o SecureString?.
Propriedades do parâmetro
| Tipo: | PSCredential |
| Valor padrão: | Current user |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-DeliveryNotificationOption
Especifica as opções de notificação de entrega para a mensagem de email. Você pode especificar vários valores. Nenhum é o valor padrão. O alias desse parâmetro é DNO.
As notificações de entrega são enviadas para o endereço no parâmetro From.
Os valores aceitáveis para esse parâmetro são os seguintes:
-
None: nenhuma notificação. -
OnSuccess: notifique se a entrega foi bem-sucedida. -
OnFailure: notifique se a entrega não tiver êxito. -
Delay: notifique se a entrega está atrasada. -
Never: nunca notifique.
Esses valores são definidos como uma enumeração baseada em sinalizador. Você pode combinar vários valores para definir vários sinalizadores usando esse parâmetro. Os valores podem ser passados para o parâmetro DeliveryNotification como uma matriz de valores ou como uma cadeia de caracteres separada por vírgulas desses valores. O cmdlet combinará os valores usando uma operação binária-OR. Passar valores como uma matriz é a opção mais simples e também permite usar o preenchimento com Tab nos valores.
Propriedades do parâmetro
| Tipo: | DeliveryNotificationOptions |
| Valor padrão: | None |
| Valores aceitos: | None, OnSuccess, OnFailure, Delay, Never |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | DNO |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Encoding
Especifica o tipo de codificação para o arquivo de destino. O valor padrão é utf8NoBOM.
Os valores aceitáveis para esse parâmetro são os seguintes:
-
ascii: usa a codificação para o conjunto de caracteres ASCII (7 bits). -
ansi: usa a codificação para a página de código ANSI da cultura vigente. Essa opção foi adicionada ao PowerShell 7.4. -
bigendianunicode: codifica em formato UTF-16 usando a ordem de byte big-endian. -
bigendianutf32: codifica em formato UTF-32 usando a ordem de byte big-endian. -
oem: usa a codificação padrão para MS-DOS e programas de console. -
unicode: codifica em formato UTF-16 usando a ordem de byte little-endian. -
utf7: codifica em formato UTF-7. -
utf8: codifica em formato UTF-8. -
utf8BOM: codifica em formato UTF-8 com BOM (marca de ordem de byte) -
utf8NoBOM: codifica no formato UTF-8 sem BOM (Byte Order Mark) -
utf32: codifica em formato UTF-32.
A partir do PowerShell 6.2, o parâmetro de codificação de
A partir do PowerShell 7.4, você pode usar o valor Ansi para o parâmetro de Codificação para passar a ID numérica da página de código ANSI da cultura atual sem precisar especificá-la manualmente.
Observação
UTF-7* não é mais recomendável para uso. A partir do PowerShell 7.1, é gerado um aviso se você especifica utf7 para o parâmetro Encoding.
Propriedades do parâmetro
| Tipo: | Encoding |
| Valor padrão: | ASCII |
| Valores aceitos: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | SER |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-From
O parâmetro From é necessário. Esse parâmetro especifica o endereço de email do remetente. Insira um nome (opcional) e um endereço de email, como Name <someone@fabrikam.com>.
Propriedades do parâmetro
| Tipo: | String |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Port
Especifica uma porta alternativa no servidor SMTP. O valor padrão é 25, que é a porta SMTP padrão.
Propriedades do parâmetro
| Tipo: | Int32 |
| Valor padrão: | 25 |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Priority
Especifica a prioridade da mensagem de email. Normal é o padrão. Os valores aceitáveis para esse parâmetro são Normal, Alto e Baixo.
Propriedades do parâmetro
| Tipo: | MailPriority |
| Valor padrão: | Normal |
| Valores aceitos: | Normal, High, Low |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-ReplyTo
Especifica endereços de email adicionais (além do endereço De) a serem usados para responder a essa mensagem.
Insira nomes (opcional) e o endereço de email, como Name <someone@fabrikam.com>.
Esse parâmetro foi introduzido no PowerShell 6.2.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-SmtpServer
Especifica o nome do servidor SMTP que envia a mensagem de email.
O valor padrão é o valor da variável de preferência $PSEmailServer. Se a variável de preferência não estiver definida e esse parâmetro não for usado, o comando Send-MailMessage falhará.
Propriedades do parâmetro
| Tipo: | String |
| Valor padrão: | $PSEmailServer |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | Nome do Computador |
Conjuntos de parâmetros
(All)
| Cargo: | 3 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-Subject
O parâmetro Subject não é necessário. Esse parâmetro especifica o assunto da mensagem de email.
Propriedades do parâmetro
| Tipo: | String |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | Substituto |
Conjuntos de parâmetros
(All)
| Cargo: | 1 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-To
O parâmetro To é necessário. Esse parâmetro especifica o endereço de email do destinatário. Insira nomes (opcional) e o endereço de email, como Name <someone@fabrikam.com>.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
-UseSsl
O protocolo SSL (Secure Sockets Layer) é usado para estabelecer uma conexão segura com o computador remoto para enviar emails. Por padrão, o SSL não é usado.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | False |
CommonParameters
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
Entradas
String
Você pode canalizar o caminho e os nomes de arquivo de anexos para este cmdlet.
Saídas
None
Esse cmdlet não retorna nenhuma saída.
Observações
Send-MailMessage está obsoleto. Para obter mais informações, consulte Platform Compatibility note DE0005. Esse cmdlet não garante conexões seguras com servidores SMTP.
DE0005 sugere o uso da biblioteca de terceiros, mailkit . Se você estiver usando o Exchange Online, poderá usar o Send-MgUserMail do SDK do Microsoft Graph PowerShell.