$outlook = New-Object -ComObject Outlook.Application;
$ns = $outlook.GetNameSpace("MAPI");
$inbox = $ns.GetDefaultFolder($olFolderInbox);
$items = $olFolderInbox.items
foreach ($item in $items)
{
$olfolderinbox.Items | % {$_.delete()}
我只需要一些代码作为计划任务运行,以定期删除某些Outlook客户端邮箱的收件箱/已删除邮件,以免累积数据
当我运行上面的时候,我得到`值不在预期的范围内,我有删除子文件夹的代码,只是上面的东西不正确,我很难看到它是什么。任何人都可以帮忙吗?
提前致谢。
答案 0 :(得分:1)
请参阅example here,您会错过一些代码。
您的代码中 $olFolderInbox
为$null
,一旦您正确初始化$inbox.Items
,就会在$olFolderInbox
集合中找到项目。
你应该试试这个:
$outlook = New-Object -ComObject Outlook.Application
$namespace = $outlook.GetNameSpace("MAPI")
$olFolderInbox = [Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderInbox
$inbox = $namespace.GetDefaultFolder($olFolderInbox)
for($item = $inbox.Items.Count; $item -ge 1; $item--) {
$inbox.Items.Item($item).Delete()
}
#to empty deleted items
$olFolderTrash = [Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderDeletedItems
$trash = $namespace.GetDefaultFolder($olFolderTrash)
for($item = $trash.Items.Count; $item -ge 1; $item--) {
$trash.Items.Item($item).Delete()
}
$outlook.Quit()