我正在尝试使用powershell从Outlook桌面的一个文件夹中读取电子邮件,我可以使用下面的代码来实现这一点。
,但我是否也可以将这些电子邮件的未读属性设置为$False ? (不在存储在变量中的对象中)
浏览网站时,我发现:https://stackoverflow.com/a/34161683/13568461,它说要使用MailItem.Save,但我想不出如何更新我的代码来利用它。
如果有人能帮到这段代码,我会非常感激的。提前谢谢你
Add-Type -assembly "Microsoft.Office.Interop.Outlook"
$Outlook = New-Object -comobject Outlook.Application
$namespace = $Outlook.GetNameSpace("MAPI")
$Folder_AI = $namespace.Folders.Item('user@domain').Folders.Item('AI-ServiceDesk-Servers')
$Count_ItemsUnread = $Folder_AI.UnReadItemCount
$All_Folder_Items = $Folder_AI.Items | Select-Object -Property UnRead, Body
$All_Folder_Items | ForEach-Object {
$Email_Status = $PSItem.Unread
$Email_Body = $PSItem.Body
$Email_Status
}发布于 2022-11-15 14:27:33
但是,我是否也可以将这些电子邮件的未读属性直接设置为$False (在存储在变量中的对象中)?
不,你需要一个项目来设置一个属性。Save方法需要使更改永久化,并避免任何用于保存以编程方式在Outlook中进行的更改的对话框。
在Outlook中处理Exchange帐户时,如果遍历文件夹/存储中的所有项,则可能会达到并发打开项的限制。这就是为什么推荐Find/FindNext或Restrict方法的原因。它们允许获取与您的搜索条件相对应的项,并且只对它们进行迭代。在我为技术博客撰写的文章中,可以了解更多关于这些方法的内容:
https://stackoverflow.com/questions/74446216
复制相似问题