Enviando e-mail com PowerShell no Windows
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 = “[email protected]”;
$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 = “[email protected]”;
#### 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 :
Screenshot da execução do Script de Envio de E-mail com PowerShell :
Recebimento do E-mail enviado pelo Script de Envio de E-mail com PowerShell:
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
Seria válido em um servidor RODC este “SMTPSend” ?
Julio ,
Acredito que sim. pois se o RODC gerar um relatório em .html ou .txt é possível utilizá-lo no corpo da mensagem ou como anexo com o SMTPSend. O SMTPSend é um cliente de e-mail, nisso ele só é utilizado para enviar o e-mail para aplicações que não possui cliente próprio, que no caso foi o relatório de rotina de backup do MySQL que utilizei. Caso tenha mais alguma dúvida é só postar.