Enviando e-mail com PowerShell no Windows

     images
Olá pessoal, venho através deste post utilizar uma opção para envio de e-mail utilizando o PowerShell do Windows com o utilitário chamado SMTPSend ferramenta que efetua o envio de e-mail através da linha de comando do Windows. O modelo do Script utilizado foi configurado para dar suporte a servidores smtp comuns ou com ssl habilitado.  Precisei efetuar essa configuração para obter informações de relatórios de execução de backup de bancos de dados MySQL que administro. Vamos colocar a mão na massa agora.

Pré-requisitos:
– Efetuar o download do SMTPSend para utilização no script.
– Powershell habilitado para execução de scripts.

Ambiente utilizado:
– Windows 2008 Server R2
– Windows 7 Ultimate
– PowerShell 2.0
– SMTPSend para enviar os e-mails.

Pagina para efetuar o download do SMTPSend.
http://www.dataenter.co.at/download.asp

Download do SMTPSend :
http://download.dataenter.co.at/ftp/demk/smtpsend.zip

Nome do Script: envia_email.ps1
######### Inicio do Script #########
#### Configurando Servidor Smtp #################
$servidor = “smtp.gmail.com”;
$porta_smtp=”25″;
$porta_smtp_ssl=”587″;

#### Configurando Conta Smtp ####################
$conta = “teste@gmail.com”;
$senha = “suasenha”;

#### Configurando Assunto, corpo da mensagem e anexo ##########
$anexo = “D:\backup\teste.zip”;
$assunto = “Teste de E-mail”;
$corpo = “Teste de E-mail”;

#### Configurando E-mail do Destinatario das Mensagens ########
$destinatario = “teste@gmail.com”;

#### Configurando Diretório para execução do envio de e-mail ######
$sendmail=”D:\sendmail\”;
Set-Location $sendmail;

#### Exportando o comando para execução em arquivo batch com suporte a smtp comum ##########
#$envia_email=”cmd.exe /C smtpsend.exe -f$conta -t$destinatario -s$assunto -mbt$corpo -a$anexo -h$servidor -p$porta_smtp -lu$conta -lp$senha”;
#echo $envia_email | Out-File -FilePath envia-email.bat -Encoding ASCII;
#### Executa envio de e-mail #####
#.\envia-email.bat;

#### Exportando o comando para execução em arquivo batch com suporte a smtp com ssl ##########
$envia_email_ssl=”cmd.exe /C smtpsend.exe -f$conta -t$destinatario -s$assunto -mbt$corpo -a$anexo -h$servidor -p$porta_smtp_ssl -lu$conta -lp$senha”;
echo $envia_email_ssl | Out-File -FilePath envia-email-ssl.bat -Encoding ASCII;
#### Executa envio de e-mail com suporte ssl #####
.\envia-email-ssl.bat;

#### Remove arquivo .bat depois da execução por segurança #########
#del -rec envia-email.bat;
del -rec envia-email-ssl.bat;

# OBS: Descomente a seção de Exportação do arquivo bat no qual irá utilizar para enviar o seu e-mail, se for utilizar smtp comum ou smtp com ssl.
######### Fim do Script #########

Explicando a utilização do script em linhas gerais, você irá configurar o servidor , usuário e senha de autenticação. O SMTPSend é somente compatível com o Prompt de comando do Windows , por isso quando se executa o script o mesmo irá criar um script “.bat” para executar o SMTPSend e depois de executado excluíra o script “.bat”.

Estrutura de Utilização para o Script de Envio de E-mail com PowerShell :

Capturar3

Screenshot da execução do Script de Envio de E-mail com PowerShell :

Capturar1

Recebimento do E-mail enviado pelo Script de Envio de E-mail com PowerShell:

Capturar2

Para a utilização do Script de Envio de E-mail com PowerShell é só configurar de acordo com o seu ambiente. Tendo dúvidas na utilização, favor comentar no post.

Fonte: http://emersongaudencio.blogspot.com.br/2012/05/enviando-e-mail-com-powershell-no.html