2014-11-06 6 views
0

Я пишу сценарий в PowerShell 2.0, чтобы создать кучу встреч в календаре с использованием COM-объекта outlook. У меня был код, полностью работающий, но конечный пользователь запросил добавление форматированных таблиц в тело назначений. Попробовав несколько других вариантов, я закончил использование Mailitem.GetInspector.WordEditor, чтобы отредактировать тело. Однако я не могу заставить тело быть сохраненным, не открывая элемент в Outlook и не ударяя его. Вот соответствующий код:Сохранить изменения в инспекторе mailitem

$newCalenderItem = $folder.Items.Add() 
$newCalenderItem.Subject = $appt.Subject 
$newCalenderItem.Location = $location 
$newCalenderItem.Start = $d.AddHours($timeSlot.Time) 
$newCalenderItem.Duration = 60 * $timeSlot.Duration 
$newCalenderItem.BusyStatus = 2 
$newCalenderItem.ReminderSet = $false 
$newCalenderItem.Categories = $appt.Category 
$newCalenderItem.Body = "" 
if ($appt.BodyFile) { 
    $newCalenderItem.GetInspector.WordEditor.Range().InsertFile("C:\Body.rtf", "", $false, $false, $false) 

    #this doesn't save it 
    $newCalenderItem.GetInspector.WordEditor.Close([ref] -1) 
} 
#this saves everything but the body 
$newCalenderItem.Save() 

Я попытался GetInspector.Close(), WordEditor.Close() и WordEditor.Save() который приносит вверх сохранить как диалог. Кто-нибудь знает, как это сделать?

ответ

0

Вам нужно будет установить свойство AppointmentItem.RtfBody. Назначения Outlook, задачи и контакты будут работать с RTF, а не с HTML. Вы можете прочитать свой RTF-файл в массив вариантов байта, чтобы перейти к свойству RtfBody.

+0

Я редактирую MailItem, а не встречу. Я пробовал редактировать RTFBody, но всегда получаю сообщение об ошибке «Параметр исключения» RTFBody: «Значение не входит в ожидаемый диапазон». Поэтому я обратился к инспектору «MailItem». –

+0

Пожалуйста, покажите свой код. Вы создали массив байтов для хранения данных? –

0

Я понял, что сам копался вокруг членов инспектора и хотел опубликовать ответ, если кто-либо найдет это в поисках собственной проблемы. Вам необходимо сохранить инспектор CurrentItem не сам инспектор.

$newCalenderItem.GetInspector.CurrentItem.Save() 
Смежные вопросы