Глава 6. Отправка электронной почты

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

PowerShell обладает простым и действенным командлетом после своей установки для такой цели прямо начиная с версии PowerShell v2. Ниже приводится образец Send-MailMessage, который преобладает в PowerShell:


Send-MailMessage -SmtpServer "smtpserver" -From "DoNotReply@labtest.com" -To "sukhija@techwizard.cloud " -Subject "Error exception occured " -Body "body of the message"
		

Если вы всё ещё пользуетесь PowerShell 1.0 (что крайне маловероятно), вы можете воспользоваться приводимым в Листинге 6-1 кодом, который работает во всех версиях PowerShell.

 

Листинг 6-1. Отправка сообщения при помощи Powershell v1


$smtpserver = "smtp.lab.com"
$to = "sukhija@techwizard.cloud"
$from = "DonotReply@labtest.com"
$file = "c:\file.txt" #for attachment
$subject = "Test Subject"

$message = new-object Net.Mail.MailMessage
$smtp = new-object Net.Mail.SmtpClient($smtpserver)
$message.From = $from
$message.To.Add($to)

$att = new-object Net.Mail.Attachment($file)
$message.IsBodyHtml = $False
$message.Subject = $subject
$message.Attachments.Add($att)
$smtp.Send($message)
 	   

Форматирование тела письма

Существуют обстоятельства, при которых вы желаете отправлять должным образом отформатированное тело электронного письма вместо простого электронного письма в одну строчку. Для этой цели вы можете воспользоваться кодом шпаргалки из Листинга 6-2. Полученный результат вы можете обнаружить на Рисунке 6-1.

 

Листинг 6-1. Отправка сообщения при помощи Powershell v1


$smtpserver = "smtp.lab.com"
$to = "sukhija@techwizard.cloud"
$from = "DonotReply@labtest.com"
$subject = "Test Subject"

$message = @"
Hello,

Line............................1

Line............................2

Line............................3

"@
Send-MailMessage -SmtpServer $smtpserver -From $from -To $to -Subject $subject -Body $message
 	   
 

Рисунок 6-1


Результат Листинга 6-1

Отправка HTML

Если вы воспользуетесь другой шпаргалкой подсказки при помощи PowerShell вы способны отправлять симпатичные электронные письма HTML, даже когда вы не знакомы с HTML. Для создания необходимого HTML зарегистрируйтесь в интернет редакторе HTML (показанном на Рисунке 6-2): https://html-online.com/editor/.

 

Рисунок 6-2


Интернет редактор HTML

Создайте некое содержимое HTML и воспользуйтесь кодом из Листинга 6-2. Вы можете рассмотреть получаемые результаты на на Рисунке 6-3

 

Листинг 6-2. Отправка отформатированного HTML электронного сообщения


$smtpserver = "smtp.lab.com"
$to = "sukhija@techwizard.cloud"
$from = "DonotReply@labtest.com"
$subject = "Test Subject"

$message = @"
<!-- #######  YAY, I AM THE SOURCE EDITOR! #########-->
<h1 style="color: #5e9ca0;">You can edit <span style="color: #2b2301;">this demo</span> text!</h1>
<h2 style="color: #2e6c80;">How to use the editor:</h2>
<p>Paste your documents in the visual editor on the left or your HTML code in the source editor in the right. <br />Edit any of the two areas and see the other changing in real time.&nbsp;</p>
<p>&nbsp;</p>
"@

Send-MailMessage -SmtpServer $smtpserver -From $from -To $to -Subject $subject -Body $message -BodyAsHtml 	   
 

Рисунок 6-3


Результат Листинга 6-2

Выводы

В данной главе вы ознакомились с тем, как отправлять электронные письма при помощи PowerShell. Вы можете применять это знание в реальном мире для пакетной отправки электронных писем или отправки предупреждений при отказе какой- то задачи/ процесса/ сценария или при ошибке.