我有一個關於Powershell中的Outlook規則的問題。我寫了一些代碼,可以將來自某個發件人的任何傳入電子郵件成功存儲到已刪除郵件文件夾中。我這樣做是因爲當郵件進入垃圾文件夾時,垃圾文件夾仍然有郵件的反標記,所以最後會說我在垃圾文件夾中有10封郵件。Powershell中的一個Outlook規則的多個操作
我想避免這種情況,只需將來自該發件人的郵件投遞到已刪除郵件文件夾,並將郵件標記爲「已讀」,以便在已刪除郵件文件夾中看不到雜亂無章的郵件。
真正的問題是:
- 我可以多個動作添加到PowerShell中的相同前景規則?如果是這樣,怎麼樣?
- 「運行腳本」操作的語法/代碼是什麼?
我迄今爲止代碼:
$ol = New-Object -ComObject Outlook.Application
$ns = $ol.GetNamespace("MAPI")
$olFolders = "Microsoft.Office.Interop.Outlook.OlDefaultFolders"
$outlook = New-Object -ComObject outlook.application
$namespace = $Outlook.GetNameSpace("MAPI")
$inBox = $ns.GetDefaultFolder([Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderInbox)
$deleted = $ns.GetDefaultFolder([Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderDeletedItems)
$rules = $outlook.session.DefaultStore.GetRules()
$rule = $rules.create("Move mail: to DeletedItems", [Microsoft.Office.Interop.Outlook.OlRuleType]::olRuleReceive)
$rule_Address = $rule.Conditions.SenderAddress
$rule_Address.Enabled = $true
$rule_Address.Address = @("<Sender Address>")
$action = $rule.Actions.MoveToFolder
$action.Enabled = $true
[Microsoft.Office.Interop.Outlook._MoveOrCopyRuleAction].InvokeMember("Folder",[System.Reflection.BindingFlags]::SetProperty,$null, $action, $deleted)
$rules.Save()
此代碼的工作至今。
請幫忙。 謝謝!
它工作添加多個操作。我似乎無法理解的是如何包含「運行腳本」操作或任何其他有關此事的限制規則(例如「MarkRead」)。 –
@TomKustermans在鏈接中提供了Office 2010/2013的答案,它表示在創建新規則時不能以編程方式完成「標記爲已讀/ olRuleActionMarkRead」。 –