无法使用Powershell通过MAPI将Outlook电子邮件UnRead属性设置为false



我似乎无法通过MAPI将更改写入Outlook,.UnRead变量在脚本中被正确设置为false,如果您写入输出,但这些变量似乎无法操作实际的.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

但这对我来说没有什么不同。

有趣的是,当我尝试使用.delete()时,我也遇到了一个"未找到方法"错误,因此我认为我一定遗漏了什么。

非常感谢您的建议。

调用MailItem.Save.

不要循环浏览文件夹中的所有项目,请使用items.Find/FindNext或items.Rest.

您已经更改了自己对象的属性,但在邮件服务器上没有更改

相关内容

最新更新