我在PowerShell 2.0中编写一个脚本,使用outlook COM对象在日历上创建一组约会。我让代码完全正常工作,但最终用户请求将格式化表添加到约会正文中。在尝试了其他几个选项后,我最终使用Mailitem.GetInspector.WordEditor
来编辑正文。但是,我无法在不打开Outlook中的项目并点击保存的情况下保存正文。以下是相关代码:
$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 :(得分:0)
您需要设置AppointmentItem.RtfBody属性 - Outlook约会,任务和联系人使用RTF而不是HTML。您可以将RTF文件读入字节的变量数组以传递给RtfBody属性。
答案 1 :(得分:0)
我发现自己正在挖掘检查员的成员,如果有人发现这个搜索他们自己的问题,他想发布答案。
您需要保存检查员CurrentItem
而不是检查员本身。
$newCalenderItem.GetInspector.CurrentItem.Save()