Глава 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
Если вы воспользуетесь другой шпаргалкой подсказки при помощи PowerShell вы способны отправлять симпатичные электронные письма HTML, даже когда вы не знакомы с HTML. Для создания необходимого HTML зарегистрируйтесь в интернет редакторе HTML (показанном на Рисунке 6-2): https://html-online.com/editor/.
Создайте некое содержимое 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. </p>
<p> </p>
"@
Send-MailMessage -SmtpServer $smtpserver -From $from -To $to -Subject $subject -Body $message -BodyAsHtml