Enviar E-mail no PowerShell usando o EWS API


A vantagem de usar o EWS para enviar e-mail é que não é necessário alterar configurações de relay no servidor Exchange. Por outro lado, a desvantagem é a necessidade de ter instalado o EWS API (ou pelo menos copiar as DLLs)

Requisitos

  • Tenha em mãos uma credencial (usuário e senha) que possua maibox;
  • Baixe e instale o Microsoft Exchange Web Services Managed API (em alguns casos para instalar foi necessário abrir o prompt como administrador e executar o msiexec);
    • O caminho onde foi instalado será necessário;

Script PowerShell

Sugerimos que veja primeiro nosso repositório no GitHub, para verificar as versões mais atualizadas de Script, mas caso não ache o que procura ou prefira apenas o conteúdo desse post, segue abaixo:

Abra o Windows PowerShell ISE e coloque o seguinte conteúdo (altere as partes em cima conforme sua realidade ou necessidade):

$MAIL_FROM = “remetente@suaempresa.com.br
$MAIL_TO = “destinatario@suaempresa.com.br
Import-Module -Name “C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll”
$Credential = Get-Credential
$exchService = New-Object -TypeName
Microsoft.Exchange.WebServices.Data.ExchangeService
$exchService.Credentials = New-Object -TypeName Microsoft.Exchange.WebServices.Data.WebCredentials -ArgumentList $Credential.UserName, $Credential.GetNetworkCredential().Password
$exchService.AutodiscoverUrl($Credential.UserName, {$true})
#Usando credencial atual
#$Service.UseDefaultCredentials = $true
#$exchService.AutodiscoverUrl($MAIL_FROM)
$eMail = New-Object -TypeName Microsoft.Exchange.WebServices.Data.EmailMessage -ArgumentList $exchService
$eMail.Subject = “Teste de E-mail”
$eMail.Body = “E-mail enviado pelo Powershell, com o EWS”
$eMail.From($MAIL_FROM)| Out-Null
$eMail.ToRecipients.Add($MAIL_TO) | Out-Null
#$eMail.Attachments.AddFileAttachment(“C:\Temp\arquivo.txt”)
#$eMail.SendAndSaveCopy()
$eMail.Send()
Write-Host “E-Mail enviado”
Read-Host “Pressione ENTER to continuar…”

Fontes/Referências

https://github.com/luizcarlosbranco/nvlan
https://itfordummies.net/2016/12/20/send-email-exchange-web-services-powershell/

Mais Informações

Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.

Entre em contato conosco pelo e-mail equipe@nvlan.com.br.

NVLAN - Consultoria

Related Posts

Membros de Grupo de Distribuição no Exchange Server

Abaixo os procedimentos que utilizamos para listar os membros do Grupo de Distribuição (Distribution Group) no Exchange Server via PowerShell.É importante ressaltar que comando abaixo foi testado nas versões 2010, 2013 e 2016. Esse exemplo lista o…

Restringindo Acesso ao ECP (Exchange Control Panel)

Aqui postamos algumas soluções de segurança para restringir o acesso à gerência do Exchange Server (Exchange Control Panel) baseando-se em IP. Abrir o Server Manager e clicar em Add roles and Fetures: Em Before You…