首页 文章

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

提问于
浏览
0

我似乎无法通过 MAPI 将更改写入 Outlook,如果您在脚本中将**.UnRead变量.UnRead**正确设置为 false,但是该变量似乎无法操纵实际的.PST 文件。 select会产生正确的电子邮件,因此对.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

我见过的大多数示例都将变量放在方括号 e.g 中。

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

但这对我没有影响。

有趣的是,当我尝试使用**.delete()**时,也会出现“未找到方法”错误,因此,我认为我一定缺少某些东西。

非常感谢您的任何建议。

2 回答

  • 0

    致电 MailItem.Save。

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

  • 0

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

相关问题