В предыдущей статье мы рассмотрели, как добавить тело письма в скрипт Powershell. В этой статье мы пойдем немного дальше и добавим в тело письма HTML содержимое..
Для этого мы будем использовать объект .Net – System.Net.Mail.MailMessage. Данный объект может быть использован через объект SmtpClient, который рассмотрен нами в предыдущих частях этой серии статей. Его основным преимуществом является то, что мы можем использовать данный объект в скрипте для создания почтового сообщения в формате HTML.
В начале используем переменные, уже знакомые нам по предыдущим статьям.
$smtpServer = "ho-ex2010-caht1.exchangeserverpro.net" $smtpFrom = "reports@exchangeserverpro.net" $smtpTo = "administrator@exchangeserverpro.net" $messageSubject = "List of Exchange Servers"
Создаем новый объект MailMessage используя объявленные переменные.
$message = New-Object System.Net.Mail.MailMessage $smtpfrom, $smtpto $message.Subject = $messageSubject
Теперь самая важная часть – устанавливаем тело письма в HTML.
$message.IsBodyHTML = $true
Далее нам необходимо получить какое то содержимое HTML для вставки в тело письма. В качестве примера вставим список серверов Exchange с указанием ролей серверов.
$message.Body = Get-ExchangeServer | Select-Object Name,ServerRole | ConvertTo-Html
В данном пример мы получаем список серверов командлетом Get-ExchangeServer, выдераем из вывода только имя сервера и роль, далее конвертируем вывод в HTML командлетом ConvertTo-Html.
Заключительным шагом является создание объекта SmtpClient и отправка сообщения.
$smtp = New-Object Net.Mail.SmtpClient($smtpServer) $smtp.Send($message)
В результате вы получите примерно следующее письмо:
Собираем все команды вместе и получаем следующий скрипт.
$smtpServer = "ho-ex2010-caht1.exchangeserverpro.net" $smtpFrom = "reports@exchangeserverpro.net" $smtpTo = "administrator@exchangeserverpro.net" $messageSubject = "List of Exchange Servers" $message = New-Object System.Net.Mail.MailMessage $smtpfrom, $smtpto $message.Subject = $messageSubject $message.IsBodyHTML = $true $message.Body = Get-ExchangeServer | Select-Object Name,ServerRole | ConvertTo-Html $smtp = New-Object Net.Mail.SmtpClient($smtpServer) $smtp.Send($message)
Как вы можете видеть все довольно просто и удобно.
Полезная информация
Поставил себе наконец оконные откосы. Пластиковые откосы для окон рекомендую заказывать в компании "КомБиг".
2 комментов оставлено (Add 1 more)