Partilhar via


Send-MailMessage

Envia uma mensagem de e-mail.

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 para 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.

Advertência

O cmdlet Send-MailMessage está obsoleto. Este cmdlet não garante ligações seguras aos 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 Nota de compatibilidade de plataforma DE0005.

Exemplos

Exemplo 1: Enviar um e-mail de uma pessoa para outra

Este exemplo envia uma mensagem de email de uma pessoa para outra.

Os parâmetros From, Toe Subject são exigidos por Send-MailMessage. Este exemplo usa a variável $PSEmailServer padrão para o servidor SMTP, portanto, o parâmetro SmtpServer não é necessário.

$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 Testar email como a mensagem porque o parâmetro opcional Body 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 e-mail para confirmar o sucesso ou falha da entrega da mensagem. O parâmetro SmtpServer define o servidor SMTP como smtp.fabrikam.com.

Exemplo 3: Enviar e-mail para uma lista de discussão

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 Bcc envia uma cópia oculta da mensagem. Uma cópia oculta é um endereço de e-mail 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 Credential especifica que as credenciais de um administrador de domínio são usadas para enviar a mensagem. O parâmetro UseSsl especifica que Secure Socket Layer (SSL) 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 dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:PsPath

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:True
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos: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 e-mail, como Name <someone@fabrikam.com>.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Body

Especifica o conteúdo da mensagem de email.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:2
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-BodyAsHtml

Especifica que o valor do parâmetro Body contém HTML.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:BAH

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Cc

Especifica os endereços de e-mail para os quais uma cópia carbono (CC) da mensagem de email é enviada. Insira nomes (opcional) e o endereço de e-mail, como Name <someone@fabrikam.com>.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos: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 de PSCredential, como um do cmdlet Get-Credential.

As credenciais são armazenadas num objeto PSCredential e a palavra-passe é armazenada como uma SecureString.

Observação

Para obter mais informações sobre SecureString proteção de dados, consulte Quão seguro é o SecureString?.

Propriedades dos parâmetros

Tipo:PSCredential
Default value:Current user
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos: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 para este parâmetro é DNO.

As notificações de entrega são enviadas para o endereço no parâmetro De.

Os valores aceitáveis para este parâmetro são os seguintes:

  • None: Nenhuma notificação.
  • OnSuccess: Notifique se a entrega for bem-sucedida.
  • OnFailure: Notifique se a entrega não for bem-sucedida.
  • Delay: Notifique se a entrega estiver atrasada.
  • Never: Nunca notifique.

Esses valores são definidos como uma enumeração baseada em sinalizador. Você pode combinar vários valores juntos 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 binary-OR. Passar valores como uma matriz é a opção mais simples e também permite que você use o preenchimento de tabulação nos valores.

Propriedades dos parâmetros

Tipo:DeliveryNotificationOptions
Default value:None
Valores aceites:None, OnSuccess, OnFailure, Delay, Never
Suporta carateres universais:False
NãoMostrar:False
Aliases:DNO

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Encoding

Especifica o tipo de codificação para o arquivo de destino. O valor predefinido é utf8NoBOM.

Os valores aceitáveis para este 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 atual. Essa opção foi adicionada no PowerShell 7.4.
  • bigendianunicode: Codifica no formato UTF-16 usando a ordem de bytes big-endian.
  • bigendianutf32: Codifica no formato UTF-32 utilizando a ordem de bytes big-endian.
  • oem: Utiliza a codificação predefinida para MS-DOS e programas de consola.
  • unicode: Codifica em formato UTF-16 utilizando a ordem de bytes little-endian.
  • utf7: Codifica em formato UTF-7.
  • utf8: Codifica em formato UTF-8.
  • utf8BOM: Codifica no formato UTF-8 com Byte Order Mark (BOM)
  • utf8NoBOM: Codifica no formato UTF-8 sem Byte Order Mark (BOM)
  • utf32: Codifica no formato UTF-32.

A partir do PowerShell 6.2, o parâmetro Encoding também permite IDs numéricos de páginas de código registradas (como -Encoding 1251) ou nomes de cadeia de caracteres de páginas de código registradas (como -Encoding "windows-1251"). Para obter mais informações, consulte a documentação do .NET para Encoding.CodePage.

A partir do PowerShell 7.4, você pode usar o valor Ansi para o parâmetro Encoding para passar a ID numérica para a página de código ANSI da cultura atual sem precisar especificá-la manualmente.

Observação

UTF-7* não é mais recomendado para usar. A partir do PowerShell 7.1, um aviso será escrito se você especificar utf7 para o parâmetro Encoding.

Propriedades dos parâmetros

Tipo:Encoding
Default value:ASCII
Valores aceites:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Suporta carateres universais:False
NãoMostrar:False
Aliases:BE

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-From

O parâmetro From é obrigatório. Este parâmetro especifica o endereço de e-mail do remetente. Insira um nome (opcional) e um endereço de e-mail, como Name <someone@fabrikam.com>.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Port

Especifica uma porta alternativa no servidor SMTP. O valor padrão é 25, que é a porta SMTP padrão.

Propriedades dos parâmetros

Tipo:Int32
Default value:25
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Priority

Especifica a prioridade da mensagem de email. Normal é o padrão. Os valores aceitáveis para este parâmetro são Normal, Alto e Baixo.

Propriedades dos parâmetros

Tipo:MailPriority
Default value:Normal
Valores aceites:Normal, High, Low
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-ReplyTo

Especifica endereços de email adicionais (diferentes do endereço De) a serem usados para responder a esta mensagem. Insira nomes (opcional) e o endereço de e-mail, como Name <someone@fabrikam.com>.

Esse parâmetro foi introduzido no PowerShell 6.2.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos: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 dos parâmetros

Tipo:String
Default value:$PSEmailServer
Suporta carateres universais:False
NãoMostrar:False
Aliases:Nome do Computador

Conjuntos de parâmetros

(All)
Position:3
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Subject

O parâmetro Subject não é necessário. Este parâmetro especifica o assunto da mensagem de email.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:submarino

Conjuntos de parâmetros

(All)
Position:1
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-To

O parâmetro To é obrigatório. Este parâmetro especifica o endereço de e-mail do destinatário. Insira nomes (opcional) e o endereço de e-mail, como Name <someone@fabrikam.com>.

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-UseSsl

O protocolo SSL (Secure Sockets Layer) é utilizado para estabelecer uma ligação segura ao computador remoto para enviar correio. Por padrão, o SSL não é usado.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos: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 dos anexos para este cmdlet.

Saídas

None

Este cmdlet não retorna nenhuma saída.

Notas

O cmdlet Send-MailMessage está obsoleto. Para obter mais informações, consulte Nota de compatibilidade de plataforma DE0005. Este cmdlet não garante ligações seguras aos 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.