我似乎无法通过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()时出错,因此我认为我必须遗漏一些东西。
非常感谢任何建议。
答案 0 :(得分:0)
调用MailItem.Save。
不要遍历文件夹中的所有项目,请使用Items.Find / FindNext或Items.Restrict。
答案 1 :(得分:0)
您已更改自己对象的属性,但不会更改邮件服务器的属性