Памятка по отправке 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 : Удаленный сертификат недействителен согласно результатам проверки подлинности.