我有一个关于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”。 –