Quer algo mais cômodo do que você automatizar rotinas nos servidores e receber um aviso, status ou até mesmo log das operações no seu e-mail!?
Seu chefe desconfia que as rotinas estão rodando nos servidores? Coloque ele na cópia dos e-mails ! (Like a boss)
Ok, então fica registrado aqui uma função Powershell para envio de e-mails.
function SendMail([string] $smtpServer, [string] $smtpUser, [string] $smtpPassword, [string] $to, [string] $title, [string] $body)
{
# -> Instancia um cliente SMTP.
$smtp = new-object System.Net.Mail.SmtpClient;
# -> Host do servidor SMTP.
$smtp.Host = $smtpServer;
# -> Autenticação no servidor SMTP.
$smtp.Credentials = New-Object System.Net.NetworkCredential($smtpUser, $smtpPassword);
# -> Instancia uma mensagem de e-mail.
$message = New-Object System.Net.Mail.MailMessage;
# -> Formata a mensagem para receber HTML.
$message.IsBodyhtml = $true;
$message.Body = $body;
$message.Subject = $title;
# -> Define o endereço de origem como o usuário que autenticou no servidor SMTP.
$message.From = New-Object System.Net.Mail.MailAddress $smtpUser;
# -> Quebra os endereços de destino de acordo com as separações (";").
$toItems = $to.Split(";");
foreach($toItem in $toItems)
{
# -> Adiciona os e-mails válidos de destino.
if($toItem -ne $null -and $toItem.Trim() -ne "")
{
$toAdress = New-Object System.Net.Mail.MailAddress $toItem;
$message.To.Add($toAdress);
}
}
# -> Envia o e-mail.
$smtp.Send($message);
}
Sem mais complicações, como já citei em outras oportunidades, o Powershell dispõe do poder das classes .NET. Então bata usá-las para essa tarefa
Be happy!
1 comentários:
Grande post Eduardo, e pretendo utilizá-lo por aqui, mas tenho algumas dúvidas: Onde altero as contas de destino, servidores de envio. Será que pode dar mais essa dica? Vlw...grande abraço.
rafael@ti3.com.br
@rafasanceverino
Postar um comentário