我似乎无法通过 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 回答
致电 MailItem.Save。
不要循环浏览文件夹中的所有项目,请使用 Items.Find/FindNext 或 Items.Restrict。
您已更改了自己对象的属性,但未更改邮件服务器上的属性