Памятка по отправке email через PowerShell. Используем командлет Send-MailMessage.
Синтаксис:
Send-MailMessage [-Attachments <String[]>]
[-Bcc <String[]>]
[[-Body] <String>]
[-BodyAsHtml] [-Encoding <Encoding>] [-Cc <String[]>]
[-DeliveryNotificationOption <DeliveryNotificationOptions>] -From <String>
[[-SmtpServer] <String>]
[-Priority <MailPriority>] [-ReplyTo <String[]>]
[[-Subject] <String>]
[-To] <String[]>
[-Credential <PSCredential>] [-UseSsl] [-Port <Int32>] [<CommonParameters>]
Ссылки
Теоретические примеры
From, To, и Subject. Команда использует переменную $PSEmailServer для SMTP сервера, поэтому в команде он не нужен.
Send-MailMessage -From 'User01 <user01@fabrikam.com>' -To 'User02 <user02@fabrikam.com>' -Subject 'Test mail'
Вложение.
Send-MailMessage -From 'User01 <user01@fabrikam.com>' -To 'User02 <user02@fabrikam.com>', 'User03 <user03@fabrikam.com>' -Subject 'Sending the Attachment' -Body "Forgot to send the attachment. Sending now." -Attachments .\data.csv -Priority High -DeliveryNotificationOption OnSuccess, OnFailure -SmtpServer 'smtp.fabrikam.com'
С аутентификацией.
Send-MailMessage -From 'User01 <user01@fabrikam.com>' -To 'ITGroup <itdept@fabrikam.com>' -Cc 'User02 <user02@fabrikam.com>' -Bcc 'ITMgr <itmgr@fabrikam.com>' -Subject "Don't forget today's meeting!" -Credential domain01\admin01 -UseSsl
Практический пример
Отправка на указанный сервер на 587 порт с доменной аутентификацией с использованием TLS.
Send-MailMessage -From '<admin@internet-lab.ru>' -To '<test@example.com>' -Subject "Hello World!" -Credential ilab\v.pupkin -UseSsl -SmtpServer mail.internet-lab.ru -Port 587
При отправке запросят пароль.
Если SSL сертификат сервера не соответствует указанному в HELO FQDN, то получим ошибку:
Send-MailMessage : Удаленный сертификат недействителен согласно результатам проверки подлинности.
Источник:
Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.