Почему MailItem.Body возвращает $ null после установки? - PullRequest
0 голосов
/ 27 января 2020

Я запустил следующий код на двух машинах:

$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

1 Ответ

0 голосов
/ 27 января 2020

Outlook кэширует значения, поэтому лучше отправлять изменения, вызывая Save.

Попробуйте использовать метод Сохранить , чтобы сделать ваши изменения постоянными.

...