Compartilhar via


Send-MailMessage

Envia uma mensagem de email.

Syntax

Send-MailMessage
    [-Attachments <String[]>]
    [-Bcc <String[]>]
    [[-Body] <String>]
    [-BodyAsHtml]
    [-Encoding <Encoding>]
    [-Cc <String[]>]
    [-DeliveryNotificationOption <DeliveryNotificationOptions>]
    -From <String>
    [[-SmtpServer] <String>]
    [-Priority <MailPriority>]
    [-ReplyTo <String[]>]
    [[-Subject] <String>]
    [-To] <String[]>
    [-Credential <PSCredential>]
    [-UseSsl]
    [-Port <Int32>]
    [<CommonParameters>]

Description

O Send-MailMessage cmdlet envia uma mensagem de email de dentro do PowerShell.

Você deve especificar um servidor SMTP (Simple Mail Transfer Protocol) ou o Send-MailMessage comando falhará. Use o parâmetro SmtpServer ou defina a $PSEmailServer variável como um servidor SMTP válido. O valor atribuído a $PSEmailServer é a configuração SMTP padrão do PowerShell. Para obter mais informações, consulte about_Preference_Variables.

Aviso

Send-MailMessage está obsoleto. Esse cmdlet não garante conexões seguras com servidores SMTP. Embora não haja substituição imediata disponível no PowerShell, recomendamos que você não use Send-MailMessageo . Para obter mais informações, consulte a nota de compatibilidade de plataforma 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.

Os parâmetros De, Para e Assunto são exigidos pelo Send-MailMessage. Este exemplo usa a variável padrão $PSEmailServer 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 Send-MailMessage cmdlet 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 Test mail 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 Send-MailMessage cmdlet 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 na 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 Send-MailMessage cmdlet 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 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.

Tipo:String[]
Aliases:PsPath
Position:Named
valor padrão:None
Obrigatório:False
Accept pipeline input:True
Accept wildcard characters: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>.

Tipo:String[]
Position:Named
valor padrão:None
Obrigatório:False
Accept pipeline input:True
Accept wildcard characters:False

-Body

Especifica o conteúdo da mensagem de email.

Tipo:String
Position:2
valor padrão:None
Obrigatório:False
Accept pipeline input:True
Accept wildcard characters:False

-BodyAsHtml

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

Tipo:SwitchParameter
Aliases:BAH
Position:Named
valor padrão:None
Obrigatório:False
Accept pipeline input:True
Accept wildcard characters:False

-Cc

Especifica os endereços de email 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>.

Tipo:String[]
Position:Named
valor padrão:None
Obrigatório:False
Accept pipeline input:True
Accept wildcard characters:False

-Credential

Especifica uma conta de usuário que tem permissão para executar esta 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 , como um do Get-Credential cmdlet.

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

Tipo:PSCredential
Position:Named
valor padrão:Current user
Obrigatório:False
Accept pipeline input:True
Accept wildcard characters:False

-DeliveryNotificationOption

Especifica as opções de notificação de entrega para a mensagem de email. Você pode especificar vários valores . None é o valor padrão. O alias para esse parâmetro é DNO.

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

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

  • None: Sem notificação.
  • OnSuccess: Notifique se a entrega for bem-sucedida.
  • OnFailure: Notifique se a entrega não for bem-sucedida.
  • Delay: Notificar 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 a conclusão de tabulação nos valores.

Tipo:DeliveryNotificationOptions
Aliases:DNO
valores aceitos:None, OnSuccess, OnFailure, Delay, Never
Position:Named
valor padrão:None
Obrigatório:False
Accept pipeline input:True
Accept wildcard characters: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 atual. Essa opção foi adicionada ao PowerShell 7.4.
  • bigendianunicode: Codifica no formato UTF-16 usando a ordem de bytes big-endian.
  • bigendianutf32: Codifica no formato UTF-32 usando a ordem de bytes big-endian.
  • oem: Usa a codificação padrão para MS-DOS e programas de console.
  • unicode: Codifica no formato UTF-16 usando a ordem de bytes little-endian.
  • utf7: Codifica no formato UTF-7.
  • utf8: Codifica no 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 Ansi valor do 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 uso. A partir do PowerShell 7.1, um aviso será escrito se você especificar utf7 para o parâmetro Encoding .

Tipo:Encoding
Aliases:BE
valores aceitos:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
valor padrão:ASCII
Obrigatório:False
Accept pipeline input:True
Accept wildcard characters:False

-From

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

Tipo:String
Position:Named
valor padrão:None
Obrigatório:True
Accept pipeline input:True
Accept wildcard characters:False

-Port

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

Tipo:Int32
Position:Named
valor padrão:25
Obrigatório:False
Accept pipeline input:True
Accept wildcard characters: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.

Tipo:MailPriority
valores aceitos:Normal, High, Low
Position:Named
valor padrão:Normal
Obrigatório:False
Accept pipeline input:True
Accept wildcard characters: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.

Tipo:String[]
Position:Named
valor padrão:None
Obrigatório:False
Accept pipeline input:True
Accept wildcard characters:False

-SmtpServer

Especifica o nome do servidor SMTP que envia a mensagem de email.

O valor padrão é o $PSEmailServer valor da variável de preferência. Se a variável de preferência não estiver definida e esse parâmetro não for usado, o Send-MailMessage comando falhará.

Tipo:String
Aliases:ComputerName
Position:3
valor padrão:$PSEmailServer
Obrigatório:False
Accept pipeline input:True
Accept wildcard characters:False

-Subject

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

Tipo:String
Aliases:sub
Position:1
valor padrão:None
Obrigatório:False
Accept pipeline input:True
Accept wildcard characters:False

-To

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

Tipo:String[]
Position:0
valor padrão:None
Obrigatório:True
Accept pipeline input:True
Accept wildcard characters: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.

Tipo:SwitchParameter
Position:Named
valor padrão:None
Obrigatório:False
Accept pipeline input:True
Accept wildcard characters:False

Entradas

String

Você pode canalizar o caminho e os nomes de arquivo dos anexos para esse cmdlet.

Saídas

None

Esse cmdlet não retorna nenhuma saída.

Observações

Send-MailMessage está obsoleto. Para obter mais informações, consulte a nota de compatibilidade de plataforma 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.