PowerShell - 空垃圾邮件

时间:2016-04-06 19:14:34

标签: email powershell outlook

我试图以这种方式清空垃圾邮件。它仅标记已读取的电子邮件,但不会清空文件夹。

Add-Type -assembly "Microsoft.Office.Interop.Outlook"
$Outlook = New-Object -comobject Outlook.Application
$namespace = $Outlook.GetNameSpace("MAPI")
$junk = $namespace.GetDefaultFolder(23)
$junk.Items | %{$_.Unread = $false} | %{$_.Delete()} 
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Outlook)
Remove-Variable Outlook

我之前使用过Exchange Web Services,但我可以,但代码并不优雅:

$junk.Empty([Microsoft.Exchange.WebServices.Data.DeleteMode]::HardDelete, $true)

编辑:

我可以用这个

部分删除
$junk | ForEach-Object {$_.Delete()}

我的意思是它一次只删除少量电子邮件,然后将它们移动到“已删除邮件”。我希望他们只是被清空了。

1 个答案:

答案 0 :(得分:0)

不要对每个"使用"更改集合时循环 - 从Items.Count循环到1。