Я запустил следующий код на двух машинах:
$ol = New-Object -ComObject Outlook.Application
$m = $ol.CreateItem(0)
$m.Body = "ASDF"
Write-Host $m.Body
На моем персональном компьютере (Windows 10 64-разрядная, Outlook (Office16) 64-разрядная), выводит «ASDF».
$Host.Version
Major Minor Build Revision
----- ----- ----- --------
5 1 18362 145
$ol.Application.Version
16.0.0.11929
На моей рабочей машине (Windows 10 64-разрядная, Outlook (Office16) 32-разрядная), $ m.Body возвращается как ноль и выводятся только пустые строки. Я пробовал как 32-, так и 64-разрядные версии PowerShell.
$Host.Version
Major Minor Build Revision
----- ----- ----- --------
5 1 16299 1146
$ol.Application.Version
16.0.0.4705
Вызов $m.Display()
на обеих машинах дает ожидаемый результат: электронное письмо с текстом "ASDF" в качестве тела. Проблема в том, что я не могу читать / получать тело письма программным путем.
Почему $ m.Body выглядит пустым, когда я пытаюсь прочитать его на моей рабочей машине?
Обновление
Я пробовал следующий код, но он выводит только пустые строки:
$ol = New-Object -ComObject Outlook.Application
$m = $ol.CreateItem(0)
$m.Body = "ASDF"
Write-Host $m.Body
$m.Save()
$m.Body = "ASDF"
Write-Host $m.Body