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 de SMTP padrão para o PowerShell. Para obter mais informações, consulte about_Preference_Variables.

Aviso

O Send-MailMessage cmdlet 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 Nota de compatibilidade da 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 pessoa.

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

Send-MailMessage -From 'User01 <user01@fabrikam.com>' -To 'User02 <user02@fabrikam.com>' -Subject 'Test mail'

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 texto Test mail 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.

Send-MailMessage -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'

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

Send-MailMessage -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

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 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 Body opcional 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 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 redirecionar os caminhos e nomes de arquivo para Send-MailMessage.

Type:String[]
Aliases:PsPath
Position:Named
Default value:None
Required: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 são listados como destinatários da mensagem. Insira nomes (opcionais) e o endereço de email, como Name <someone@fabrikam.com>.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Body

Especifica o conteúdo da mensagem de email.

Type:String
Position:2
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-BodyAsHtml

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

Type:SwitchParameter
Aliases:BAH
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Cc

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

Type:String[]
Position:Named
Default value:None
Required: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 SecureString , consulte Quão seguro é SecureString?.

Type:PSCredential
Position:Named
Default value:Current user
Required: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 From .

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

  • None: nenhuma notificação.
  • OnSuccess: notificar se a entrega for bem-sucedida.
  • OnFailure: notificar se a entrega não for bem-sucedida.
  • Delay: notifique se a entrega está atrasada.
  • Never: nunca notifique.
Type:DeliveryNotificationOptions
Aliases:DNO
Accepted values:None, OnSuccess, OnFailure, Delay, Never
Position:Named
Default value:None
Required: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).
  • bigendianunicode: codifica no formato UTF-16 usando a ordem de bytes big-endian.
  • oem: usa a codificação padrão para programas MS-DOS e console.
  • unicode: codifica no formato UTF-16 usando a ordem de byte little-endian.
  • utf7: codifica no formato UTF-7.
  • utf8: codifica no formato UTF-8.
  • utf8BOM: codifica no formato UTF-8 com Marca de Pedido de Byte (BOM)
  • utf8NoBOM: codifica no formato UTF-8 sem marca de pedido de byte (BOM)
  • utf32: codifica no formato UTF-32.

A partir do PowerShell 6.2, o parâmetro Decodificação também permite IDs numéricas 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.

Type:Encoding
Aliases:BE
Accepted values:ASCII, BigEndianUnicode, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Required:False
Accept pipeline input:True
Accept wildcard characters: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>.

Type:String
Position:Named
Default value:None
Required: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.

Type:Int32
Position:Named
Default value:25
Required: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.

Type:MailPriority
Accepted values:Normal, High, Low
Position:Named
Default value:Normal
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ReplyTo

Especifica endereços de email adicionais (além do endereço De) a serem usados para responder a essa mensagem. Insira nomes (opcionais) e o endereço de email, como Name <someone@fabrikam.com>.

Esse parâmetro foi introduzido no PowerShell 6.2.

Type:String[]
Position:Named
Default value:None
Required: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 valor da variável de $PSEmailServer 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á.

Type:String
Aliases:ComputerName
Position:3
Default value:$PSEmailServer
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Subject

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

Type:String
Aliases:sub
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-To

O parâmetro To é necessário. Esse parâmetro especifica o endereço de email do destinatário. Se houver vários destinatários, separe seus endereços com uma vírgula (,). Insira nomes (opcionais) e o endereço de email, como Name <someone@fabrikam.com>.

Type:String[]
Position:0
Default value:None
Required: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, SSL não é usado.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

Entradas

String

Você pode redirecionar o caminho e os nomes de arquivo de anexos para Send-MailMessage.

Saídas

None

Este cmdlet não gera saída.