Powershell: Enviando e-mails com Send-MailMessage

Noite de sexta-feira. Como a maioria das pessoas você gostaria de estar casa, curtindo a família e/ou os amigos, porém você está preso no trabalho. Você esqueceu de conferir se o script da manutenção programada executou corretamente.


Não seria ótimo se você pudesse configurar seus scripts e configurá-los para enviar os resultados diretamente para o seu e-mail? Assim você poderia aproveitar o seu final de semana sossegado, com a certeza que os seus scripts estão executando corretamente.

Neste artigo vou mostrar um cmdlet que vai lhe ajudar muito nesta tarefa, ele é o Send-MailMessage

Enviando e-mails através do Send-MailMessage

Existem diversas formas de enviar e-mails utilizando o PowerShell. Porém o Send-MailMessage torna este processo muito mais fácil.
Com um simples comando é possível enviar um e-mail utilizando controles de segurança e notificação de entrega.

Como utilizar o cmdlet Send-MailMessage

Send-MailMessage <parametros>

Segue abaixo a lista de parâmetros possíveis de serem usados:

-Attchments
Caminho completo do arquivo a ser anexado.

-Body
O corpo do e-mail.


-BodyAsHtml
O corpo do e-mail contendo código HTML.


-Cc
Endereço de e-mail que você gostaria de incluir em Cc.


-Credential
Inserir as credenciais da conta de e-mail.


–DeliveryNotificationOption
As notificações serão entregues para o endereço de e-mail que estiver especificado no parâmetro -From.

None – Nenhuma notificação
OnSuccess – Notifica  se a entrega foi bem sucedida
OnFailure – Notifica se houve alguma falha na entrega
Delay – Notificação de mensagem em atraso
Never – Nenhuma notificação é enviada

–From
O endereço que sera utilizado para enviar o e-mail.

–Priority
Definir a prioridade da mensagem. Low, Normal Default, High.

–SmtpServer
O endereço do servidor SMTP que será utilizado para enviar a mensagem.

–Subject
O título do e-mail.

–To
O destinatário do e-mail.

–UseSsl
Parâmetro que força a utilização do protocolo SSL para estabelecer a comunicação com o servidor SMTP.

Exemplos de uso

Exemplo 1 – Enviar um simples e-mail

Através da linha de comando abaixo nós estamos enviando um e-mail simples, sem validação de credenciais.

Exemplo 2 – Enviar um e-mail através de uma conta do Gmail

No exemplo abaixo podemos enviar o e-mail através do SMTP do Gmail. Assim que executarmos o script, será solicitado as credenciais de acesso ao Gmail.
Neste script além do título e corpo do e-mail, também estamos enviando um arquivo em anexo, que pode ser alterado conforme a sua necessidade.

$From = "[email protected]"
$To = "[email protected]"
$Anexo = "C:\temp\temp.txt"
$Subject = "Titulo"
$Body = "Insira aqui o corpo do seu e-mail"
$SMTPServer = "smtp.gmail.com"
$SMTPPort = "587"

Send-MailMessage -From $From -To $To -Subject $Subject -Body $Body -SmtpServer $SMTPServer -Port $SMTPPort -UseSsl
-Credential (Get-Credential) -Attachments $Attachment


Sem você tem dúvidas ou sugestões, deixe o seu comentário

Que a força esteja com você!!!

  • Wanderson Campos

    e como faz pra colocar usuário e senha no comando ae pra enviar por um batch por exemplo?