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

На днях возникла необходимость в рассылке периодических сообщений-оповещений по расписанию, естественно все должно быть и выглядеть красиво.
Приступаем. Есть некий html-ный шаблон с картинкой внутри, он должен красиво приходить и соответственно выглядеть. Шаблон условно именуется template.html, а картинка к нему alert.png.
Рассылка должна выполняться при использовании BCC.
Пишем небольшой скрипт следующего содержания:
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 >» задается список групп которым необходимо выполнять отсылку.
Собственно и все.
Похожие статьи
Приглашаю присоединиться ко мне в следующих сервисах:
Вы можете оставить комментарий.
добавлю что после отправки нужно добавить
$Attachment.Dispose(), тогда окончание будет
…
$SMTPClient.Send($SMTPMessage)
$Attachment.Dispose()
}
иначе файл будет заблокирован.
kkvkkvЦитировать