Отправка электронной почты с помощью приложения Outlook с ограниченными разрешениями (с помощью PowerShell)

#powershell #email #outlook

#powershell #Адрес электронной почты #outlook

Вопрос:

Я пытаюсь создавать и отправлять электронные письма с помощью приложения Outlook с помощью PowerShell, применяя разрешения для электронной почты (пример: только для шифрования, не пересылать и т. Д.), В настоящее время работает над приложением Outlook (при создании электронной почты вручную), Однако не смог найти способ отправки электронных писем с помощьюPowerShell, применяющий этот параметр:

Шаблоны разрешений в Outlook

В настоящее время я использую следующий код для создания и отправки электронных писем (работает):

 $Outlook = New-Object -ComObject Outlook.Application
$Mail = $Outlook.CreateItem("olMailItem")
$Mail.To = "test@test.com"
$Mail.Subject = "Test Email"
$Mail.Body = "Email sent using PowerShell"
$file = "C:ExampleFoldertest.txt"
$Mail.Attachments.Add($file)
$Mail.Send()
 

Есть ли способ применить этот параметр с помощью PowerShell?

Комментарии:

1. Я обнаружил, что если для свойства $Mail.Permission перед отправкой электронного письма установлено значение «1», то в электронном письме запускается опция olDoNotForward, однако это не идеальный сценарий, поскольку существует больше шаблонов разрешений, и я не совсем уверен, как изменить свойства «PermissionTemplateGuid» и «PermissionService» для почтового отправления.

Ответ №1:

Я основал решение для этого, это решение включает в себя два свойства: «$ Outlook.CreateItem(«olMailItem»).Разрешение » и «$ Outlook.CreateItem(«olMailItem»).PermissionTemplateGuid» и выполните следующие действия:

  • Если $ Outlook.CreateItem(«olMailItem»).Для разрешения установлено значение «0»: электронное письмо отправляется как неограниченное сообщение, для этого значения не требуется PermissionTemplateGuid.
  • Если $ Outlook.CreateItem(«olMailItem»).Для разрешения установлено значение «1»: электронное письмо отправляется автоматически как olDoNotForward, для этого значения не требуется PermissionTemplateGuid.
  • Если $Outlook.CreateItem(«olMailItem»).Разрешение установлено на «2»: для электронной почты требуется PermissionTemplateGuid, поэтому требуется получить идентификатор GUID шаблона, поскольку в каждой организации в соответствии с конфигурацией используется свой шаблон. отправьте электронное письмо с шаблоном шифрования в свой почтовый ящик и прочитайте его, используя следующий код:
 
$olFolderInbox = 6
$outlook = new-object -com outlook.application
$mapi = $outlook.GetNameSpace("MAPI")
$inbox = $mapi.GetDefaultFolder($olFolderInbox)
$items = $inbox.items
$items[1].PermissionTemplateGuid

 

Это обеспечит правильный permissionTemplateGuid с требуемым шифрованием.

Поэтому для отправки электронной почты работает следующая формула:

 $Outlook = New-Object -ComObject Outlook.Application
$Mail = $Outlook.CreateItem("olMailItem")
$Mail.To = "test@test.com"
$Mail.Subject = "Test Email"
$Mail.Body = "Email sent using PowerShell"
$file = "C:ExampleFoldertest.txt"
$Mail.Attachments.Add($file)
$Mail.PermissionTemplateGuid = XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
$Mail.Permission = "2"
$Mail.Send()
 

Для получения дополнительной информации посетите этот веб-сайт: http://jon.glass/blog/reads-e-mail-with-powershell /