Рассылка сообщений через powershell

Почтальон

На днях возникла необходимость в рассылке периодических сообщений-оповещений по расписанию, естественно все должно быть и выглядеть красиво.

Приступаем. Есть некий html-ный шаблон с картинкой внутри, он должен красиво приходить и соответственно выглядеть. Шаблон условно именуется template.html, а картинка к нему alert.png.

Рассылка должна выполняться при использовании BCC.

Пишем небольшой скрипт следующего содержания:

function Send-Message {
param([string]$ToAddress=(Throw ‘$ToAddress is required!’))

# сервер отправитель
$SendingServer = "192.168.0.1"
$addresses = $ToAddress
if($ToAddress -isnot [Object[]]) {
$addresses = ([string]$ToAddress).Split(";")
}
#
$SMTPMessage = New-Object System.Net.Mail.MailMessage
# задаем путь до вложения
$SMTPMessage.Body = Get-Content "X:\FULL\Path\TO\template.html"
$SMTPMessage.IsBodyHtml = $true
# от кого
$SMTPMessage.From = "service.desk@example.com"
# тема сообщения
$SMTPMessage.Subject = "Уведомление о …"

foreach($singleAddress in $addresses) {
$SMTPMessage.BCC.Add($singleAddress)
# В случае если требуется выполнять отсылку с использованием TO необходимо раскомментировать строку ниже
#$SMTPMessage.TO.Add($singleAddress)
}
# вложение
$Attachment = New-Object System.Net.Mail.Attachment "X:\FULL\Path\TO\alert.png"
$SMTPMessage.Attachments.Add($Attachment)

$SMTPClient = New-Object System.Net.Mail.SMTPClient $SendingServer
$SMTPClient.Send($SMTPMessage)
}
Send-Message ";;"

В строке Send-Message «< group1@example.com >;< group2@example.com >;< group3@example.com >» задается список групп которым необходимо выполнять отсылку.

Собственно и все.

Буду благодарен, если поделитесь этой статьей:

Приглашаю присоединиться ко мне в следующих сервисах:
facebook Google Plus вКонтакте Twitter
Если Вам понравилась статья, то вы можете подписаться на RSS. А также бесплатно подписаться по E-mail и получать актуальную информацию в числе первых.
Получать обновления на email

Вы можете оставить комментарий.

1 Комментарий »

 
  • 1# kkvkkv (46 комм.):

    добавлю что после отправки нужно добавить
    $Attachment.Dispose(), тогда окончание будет

    $SMTPClient.Send($SMTPMessage)
    $Attachment.Dispose()
    }

    иначе файл будет заблокирован.

      Цитировать

 

Добавить комментарий

XHTML: Вы можете использовать тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>