无法通过带有Powershell的MAPI将Outlook电子邮件UnRead属性设置为false

时间:2015-12-08 14:10:52

标签: powershell outlook mapi

我似乎无法通过MAPI向Outlook写入更改,如果写入输出< .UnRead 变量在脚本中正确设置为false / strong>它,但变量似乎不会操纵实际的.PST文件。 选择会生成正确的电子邮件,因此对.PST的读取权限就可以了。

以下是我用来从PST文件夹中检索未读电子邮件列表的代码,并将其中一个设置为:

$Outlook = new-object -comobject "Outlook.Application";
$Mapi = $Outlook.getnamespace("mapi");
$Pst = $Mapi.Folders.Item("Personal Folders")
$Folder = $Pst.Folders.Item("Test")
$Emails = $Folder.Items | Select UnRead, SenderEmailAddress, Subject, ReceivedTime, Body | Where {$_.Unread -eq "True"}

$Emails[1].UnRead = $false

我见过的大多数例子都说将变量放在括号中,例如

$($Emails)[1].UnRead = $false

但这对我没有任何影响。

有趣的是,我找不到一种找不到的方法&#39;当我尝试使用 .delete()时出错,因此我认为我必须遗漏一些东西。

非常感谢任何建议。

2 个答案:

答案 0 :(得分:0)

调用MailItem.Save。

不要遍历文件夹中的所有项目,请使用Items.Find / FindNext或Items.Restrict。

答案 1 :(得分:0)

您已更改自己对象的属性,但不会更改邮件服务器的属性