sthMailProfile — модуль PowerShell для создания профилей электронной почты и отправки сообщений с их помощью

sthMailProfile — это модуль, содержащий четыре функции, предназначенные для создания профилей электронной почты и отправки сообщений с их помощью.

Функция Send-sthMailMessage отправляет сообщение по электронной почте с использованием настроек, заданных в указанном профиле.

Функция New-sthMailProfile создает профиль электронной почты, содержащий указанные параметры.

Функция Get-sthMailProfile получает существующие профили электронной почты и отображает их параметры.

Функция Remove-sthMailProfile удаляет указанные профили электронной почты.

Что такое профиль?

Профиль — это файл xml, содержащий параметры электронной почты, такие как: From, To, Credential, SmtpServer, Port, UseSSL, Encoding, BodyAsHtml, CC, BCC, DeliveryNotificationOption, and Priority.

Вы можете создать профиль при помощи команды New-sthMailProfile с параметром -ProfileName или -ProfileFilePath.

Параметр -ProfileName создает .xml файл с указанным именем в папке Profiles, расположенной в каталоге модуля.

Параметр -ProfileFilePath принимает в качестве значения путь и имя файла, например C:\Folder\file.xml, и создает его в указанном расположении.

Как его установить?

Вы можете установить модуль sthMailProfile из PowerShell Gallery:

Install-Module sthMailProfile

Также вы можете найти его на GitHub:
https://github.com/sethvs/sthMailProfile

Как с ним работать?

Send-sthMailMessage

Пример 1: Отправка сообщения электронной почты с использованием ранее созданного профиля
Первая команда получает результаты выполнения командлета Get-Process и сохраняет их в переменной $ps.
Вторая команда отправляет их по электронной почте с использованием ранее созданного профиля с именем «MailProfile».

$ps = Get-Process
Send-sthMailMessage -ProfileName "MailProfile" -Subject "Process List" -Message $ps

Пример 2: Отправка сообщения электронной почты с использованием позиционных параметров
Первая команда получает результаты выполнения командлета Get-Process и сохраняет их в переменной $ps.
Вторая команда отправляет их по электронной почте с использованием ранее созданного профиля с именем «MailProfile».
Команда использует позиционные параметры.

$ps = Get-Process
Send-sthMailMessage "MailProfile" "Process List" $ps

Пример 3: Отправка сообщения электронной почты с использованием файла профиля, расположенного по указанному пути
Первая команда получает результаты выполнения командлета Get-Process и сохраняет их в переменной $ps.
Вторая команда отправляет их по электронной почте с использованием ранее созданного файла профиля SomeProfile.xml, расположенного в каталоге C:\Profiles.

$ps = Get-Process
Send-sthMailMessage -ProfileFilePath C:\Profiles\SomeProfile.xml -Subject "Process List" -Message $ps

Пример 4: Отправка сообщения электронной почты с использованием конвейера и ранее созданного профиля
Команда получает результаты выполнения командлета Get-Process по конвейеру и отправляет их по электронной почте с использованием ранее созданного профиля с именем «MailProfile».

Get-Process | Send-sthMailMessage -ProfileName "MailProfile" -Subject "Process List"

Пример 5: Отправка сообщения электронной почты, содержащего прикрепленные файлы, с использованием ранее созданного профиля
Команда получает результаты выполнения командлета Get-Process по конвейеру и отправляет их вместе с приложенными файлами по электронной почте с использованием ранее созданного профиля с именем «MailProfile».

Get-Process | Send-sthMailMessage -ProfileName "MailProfile" -Subject "Process List" -Attachments "file1.txt, file2.txt"

New-sthMailProfile

Пример 1: Создание нового профиля
Команда создает профиль электронной почты с именем «MailProfile» и параметрами From, To и SmtpServer.

New-sthMailProfile -ProfileName "MailProfile" -From source@domain.com -To destination@domain.com -SmtpServer smtp.domain.com

Пример 2: Создание нового профиля с использованием позиционных параметров
Команда создает профиль электронной почты с именем «MailProfile» и параметрами From, To и SmtpServer с использованием позиционных параметров.

New-sthMailProfile "MailProfile" source@domain.com destination@domain.com smtp.domain.com

Пример 3: Создание профиля с указанием пути и имени файла
Команда создает файл профиля с именем SomeProfile.xml, расположенный в каталоге C:\Profiles.

New-sthMailProfile -ProfileFilePath "C:\Profiles\SomeProfile.xml" -From source@domain.com -To destination@domain.com -SmtpServer smtp.domain.com

Пример 4: Создание нового профиля с указанием дополнительных параметров
Команда создает профиль электронной почты с именем «MailProfile» и параметрами From, To, SmtpServer, Subject, Port, UseSSL, Encoding, BodyAsHtml, CC, BCC, DeliveryNotificationOption и Priority.

New-sthMailProfile -ProfileName "MailProfile" -From source@domain.com -To destination@domain.com -SmtpServer smtp.domain.com -Subject "TheSubject" -Port 587 -UseSSL -Encoding UTF-8 -BodyAsHtml -CC cc@domain.com -BCC bcc@domain.com -DeliveryNotificationOption OnSuccess -Priority High

Пример 5: Создание нового профиля, содержащего учетные данные
Команда создает профиль электронной почты с именем «MailProfile» и параметрами From, To, SmtpServer, UserName и Password.
Так как параметр -Password указан не был, функция запрашивает его значение.

New-sthMailProfile -ProfileName "MailProfile" -From source@domain.com -To destination@domain.com -SmtpServer smtp.domain.com -UserName user@domain.com
Type the password:

Так как SecureString использует DPAPI, то, если вы создаете профиль, содержащий учетные данные (имя и пароль) без использования параметра -StorePasswordInPlainText, этот профиль может быть использован только на том компьютере, на котором он был создан и только под той пользовательской учетной записью, под которой он был создан.


Пример 6: Создание нового профиля с указанием пароля в качестве строки
Команда создает профиль электронной почты с именем «MailProfile» и параметрами From, To, SmtpServer, UserName и Password.
Пароль указывается в виде строки.

New-sthMailProfile -ProfileName "MailProfile" -From source@domain.com -To destination@domain.com -SmtpServer smtp.domain.com -UserName user@domain.com -Password 'password'

Так как SecureString использует DPAPI, то, если вы создаете профиль, содержащий учетные данные (имя и пароль) без использования параметра -StorePasswordInPlainText, этот профиль может быть использован только на том компьютере, на котором он был создан и только под той пользовательской учетной записью, под которой он был создан.


Пример 7: Создание нового профиля с указанием пароля в качестве объекта SecureString
Первая команда создает объект SecureString из строки и назначает его переменной $Password.
Вторая команда создает профиль электронной почты с именем «MailProfile» и параметрами From, To, SmtpServer, UserName и Password.
Пароль указывается в виде объекта SecureString.

$Password = ConvertTo-SecureString -String 'password' -AsPlainText -Force
New-sthMailProfile -ProfileName "MailProfile" -From source@domain.com -To destination@domain.com -SmtpServer smtp.domain.com -UserName user@domain.com -Password $Password

Так как SecureString использует DPAPI, то, если вы создаете профиль, содержащий учетные данные (имя и пароль) без использования параметра -StorePasswordInPlainText, этот профиль может быть использован только на том компьютере, на котором он был создан и только под той пользовательской учетной записью, под которой он был создан.


Пример 8: Создание нового профиля с использованием объекта PSCredential
Первая команда создает объект SecureString из строки и назначает его переменной $Password.
Вторая команда создает объект PSCredential, используя ‘UserName’ и соданный ранее пароль в качестве аргументов.
Третья команда создает профиль электронной почты с именем «MailProfile» и параметрами From, To, SmtpServer и Credential.

$Password = ConvertTo-SecureString -String 'password' -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList 'UserName', $Password
New-sthMailProfile -ProfileName "MailProfile" -From source@domain.com -To destination@domain.com -SmtpServer smtp.domain.com -Credential $Credential

Так как SecureString использует DPAPI, то, если вы создаете профиль, содержащий учетные данные (имя и пароль) без использования параметра -StorePasswordInPlainText, этот профиль может быть использован только на том компьютере, на котором он был создан и только под той пользовательской учетной записью, под которой он был создан.


Пример 9: Создание нового профиля с использованием массива в качестве значения параметра Credential
Команда создает профиль электронной почты с именем «MailProfile» и параметрами From, To, SmtpServer и Credential.
Параметр Credential задан в виде массива, состоящего из двух элементов.

New-sthMailProfile -ProfileName "MailProfile" -From source@domain.com -To destination@domain.com -SmtpServer smtp.domain.com -Credential @('UserName', 'password')

Так как SecureString использует DPAPI, то, если вы создаете профиль, содержащий учетные данные (имя и пароль) без использования параметра -StorePasswordInPlainText, этот профиль может быть использован только на том компьютере, на котором он был создан и только под той пользовательской учетной записью, под которой он был создан.


Пример 10: Создание нового профиля, хранящего пароль открытым текстом
Команда создает профиль электронной почты с именем «MailProfile» и параметрами From, To, SmtpServer, UserName и Password.
Так как указан параметр -StorePasswordInPlainText, пароль будет храниться в профиле открытым текстом.
Это позволяет вам использовать профиль на других компьютерах, а не только на том, где он был создан, а также под иными пользовательскими учетными записями, отличными от той, под которой он был создан.

New-sthMailProfile -ProfileName "MailProfile" -From source@domain.com -To destination@domain.com -SmtpServer smtp.domain.com -UserName user@domain.com -Password 'password' -StorePasswordInPlainText

Пример 11: Создание нового профиля с указанием значения темы
Первая команда создает профиль электронной почты с именем «MailProfile» и параметрами From, To, SmtpServer и Subject.
Вторая команда отправляет сообщение с использованием темы указанной в профиле.
Третья команда отправляет сообщение с использованием темы, указанной в качестве значения параметра -Subject функции Send-sthMailMessage.

New-sthMailProfile -ProfileName "MailProfile" -From source@domain.com -To destination@domain.com -SmtpServer smtp.domain.com -Subject "TheSubject"
Send-sthMailMessage -ProfileName "MailProfile" -Message "TheMessage"
Send-sthMailMessage -ProfileName "MailProfile" -Subject "AnotherSubject" -Message "TheMessage"

Пример 12: Создание нового профиля с указанием параметра -DoNotSendIfMessageIsEmpty
Первая команда создает профиль электронной почты с именем «SendEmpty» и параметрами From, To и SmtpServer.
Вторая команда создает профиль электронной почты с именем «DoNotSendEmpty» и параметрами From, To, SmtpServer и DoNotSendIfMessageIsEmpty.

Третья команда пытается отправить пустое сообщение. Сообщение будет отправлено.
Четвертая команда пытается отправить пустое сообщение. Сообщение не будет отправлено.

New-sthMailProfile -ProfileName "SendEmpty" -From source@domain.com -To destination@domain.com -SmtpServer smtp.domain.com
New-sthMailProfile -ProfileName "DoNotSendEmpty" -From source@domain.com -To destination@domain.com -SmtpServer smtp.domain.com -DoNotSendIfMessageIsEmpty

'' | Send-sthMailMessage -ProfileName "SendEmpty" -Subject "TheSubject"
'' | Send-sthMailMessage -ProfileName "DoNotSendEmpty" -Subject "TheSubject"

Get-sthMailProfile

Пример 1: Получение всех существующих профилей
Команда получает все существующие профили и отображает их параметры.

Get-sthMailProfile
ProfileName : MailProfile
From        : source@domain.com
To          : {destination@domain.com}
PasswordIs  : NotExist
SmtpServer  : smtp.domain.com

ProfileName : MailProfile2
From        : source@domain.com
To          : {destination@domain.com}
UserName    : user@domain.com
PasswordIs  : PlainText
SmtpServer  : smtp.domain.com

ProfileName : MailProfile3
From        : source@domain.com
To          : {destination@domain.com}
UserName    : user@domain.com
PasswordIs  : Secured
SmtpServer  : smtp.domain.com

Пример 2: Получение профиля с определенным именем
Команда получает профиль «MailProfile» и отображает его параметры.

Get-sthMailProfile MailProfile
ProfileName : MailProfile
From        : source@domain.com
To          : {destination@domain.com}
PasswordIs  : NotExist
SmtpServer  : smtp.domain.com

Пример 3: Получение профилей с использованием символов подстановки
Команда получает профили с именами, начинающимися с «Mail» и отображает их параметры.

Get-sthMailProfile -ProfileName "Mail*"
ProfileName : MailProfile
From        : source@domain.com
To          : {destination@domain.com}
PasswordIs  : NotExist
SmtpServer  : smtp.domain.com

ProfileName : MailProfile2
From        : source@domain.com
To          : {destination@domain.com}
UserName    : user@domain.com
PasswordIs  : PlainText
SmtpServer  : smtp.domain.com

ProfileName : MailProfile3
From        : source@domain.com
To          : {destination@domain.com}
UserName    : user@domain.com
PasswordIs  : Secured
SmtpServer  : smtp.domain.com

Пример 4: Получение содержимого файла профиля, расположенного в указанном местоположении
Команда отображает содержимое файла профиля с именем SomeProfile.xml, расположенного в папке C:\Profiles.

Get-sthMailProfile -ProfileFilePath C:\Profiles\SomeProfile.xml

ProfileName : SomeProfile
From        : source@domain.com
To          : {destination@domain.com}
PasswordIs  : NotExist
SmtpServer  : smtp.domain.com

Пример 5: Получение профилей и отображение их параметров, в том числе пароля
Команда получает существующие профили и отображает все их параметры, в том числе пароль.

Get-sthMailProfile -ShowPassword
ProfileName : MailProfile
From        : source@domain.com
To          : {destination@domain.com}
PasswordIs  : NotExist
SmtpServer  : smtp.domain.com

ProfileName : MailProfile2
From        : source@domain.com
To          : {destination@domain.com}
UserName    : user@domain.com
Password    : password
PasswordIs  : PlainText
SmtpServer  : smtp.domain.com

ProfileName : MailProfile3
From        : source@domain.com
To          : {destination@domain.com}
UserName    : user@domain.com
Password    : password
PasswordIs  : Secured
SmtpServer  : smtp.domain.com

Remove-sthMailProfile

Пример 1: Удаление профиля
Команда удаляет профиль «MailProfile».

Remove-sthMailProfile -ProfileName "MailProfile"

Пример 2: Удаление профилей с использованием символов подстановки
Команда удаляет профили с именами, начинающимися с «Mail».

Remove-sthMailProfile -ProfileName "Mail*"

Пример 3: Удаление всех профилей
Команда удаляет все профили.

Remove-sthMailProfile -ProfileName *

Пример 4: Удаление файла профиля, расположенного по указанному пути
Команда удаляет файл профиля с именем SomeProfile.xml, расположенный в каталоге C:\Profiles.

Remove-sthMailProfile -ProfileFilePath C:\Profiles\SomeProfile.xml

Полный список модулей:

https://sergeyvasin.net/modules/


Links:

GitHub: https://github.com/sethvs
Twitter: https://twitter.com/vsseth
Facebook: https://fb.com/inpowershell
VK: https://vk.com/inpowershell

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s