powershell Outlook 从发送的项目中获取会议组织者

问题描述 投票:0回答:1

当我受邀参加会议并且我接受(或标记为“暂定”或“拒绝”)时,已发送的项目会出现在 olFolderSentMail 中,并显示在此 powershell 代码生成的列表中:

$olFolderSentMail = 5
$ol = New-Object -ComObject Outlook.Application
$ns = $ol.GetNamespace('MAPI')
$Start = $targetDate.ToShortDateString() + " 00:00"
$End = $targetDate.AddDays(+1).ToShortDateString() + " 00:00"
$sentMail = $ns.GetDefaultFolder($olFolderSentMail)

$sentMail.Items | Where-Object { $_.ReceivedTime -ge "$Start" -and $_.ReceivedTime -lt "$End" } | ForEach-Object {
    $organizer = $_.MeetingOrganizer
    "{0,-20} {1,-20} {2,-20} {3:yyyy-MM-dd HH:mm:ss} {4}" -f $_.To, $organizer, $_.CC, $_.ReceivedTime, $_.Subject
} | Out-String -Width 1024

输出如下所示:

<spaces>2024-04-05 06:59:00 Tentative: meeting subject

“收件人”或“会议组织者”中没有显示任何内容。如果我查看 Outlook 已发送邮件文件夹,就会看到组织者名称。我做错了什么?

这是 Microsoft® Outlook® for Microsoft 365 MSO(版本 2403 内部版本 16.0.17425.20124)64 位。

感谢您提供的任何帮助!

powershell outlook
1个回答
0
投票

首先,不要循环浏览 Outlook 文件夹中的所有项目 - 使用

Items.Find/FindNext
Items.Restrict

其次,

MeetingItem
对象不公开MeetingOrganizer属性。 To 属性也是如此。

您可以调用

MeetingItem.GetAssociatedAppointment()
方法来获取相应的
AppointmentItem
对象(该调用将相当昂贵)并读取
AppointmentItem.Organizer
属性,或者您可以假设
MeetingItem
已发送给会议组织者,因此组织者将是唯一的接收者。访问
MeetingItem.Recipients
集合中的第一个收件人并阅读
Recipient.Name
/
Address
/等。属性。

© www.soinside.com 2019 - 2024. All rights reserved.