我对Powershell中的Outlook规则有疑问。我写了一些代码,成功地将来自某个发件人的任何传入电子邮件存储到deleted-items文件夹。我这样做是因为当邮件进入垃圾文件夹时,垃圾文件夹仍然有邮件的计数器令牌,所以最后它会说我在垃圾文件夹中有10封邮件。
我想通过将来自该发件人的传入邮件丢弃到deleted-items文件夹并将邮件标记为" read"来避免这种情况。这样我就不会在已删除的项目文件夹中看到混乱。
问题是:
到目前为止我的代码:
$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()
此代码到目前为止有效。
请帮忙。 谢谢!
答案 0 :(得分:4)
我可以在PowerShell中向同一个Outlook规则添加多个操作吗?如果是这样,怎么样?
但是我得到了一个使用多个动作应用于单个规则的工作测试。它实际上很简单,您只需要重复已经完成的步骤并创建一个不同的操作变量。
在我的示例中,只显示代码的结尾,我添加了一个操作以在New Item Alert窗口中显示消息。
...
$action = $rule.Actions.MoveToFolder
$action.Enabled = $true
$anotherAction = $rule.Actions.NewItemAlert
$anotherAction.Text = "I am awesome!"
$anotherAction.Enabled = $true
[Microsoft.Office.Interop.Outlook._MoveOrCopyRuleAction].InvokeMember("Folder",[System.Reflection.BindingFlags]::SetProperty,$null, $action, $deleted)
$rules.Save()
你很可能已经尝试过这样的事情了。如果没有,那么您需要注意一个重要的参考。
“运行脚本”操作的语法/代码是什么?
这是您无法按this reference for Office 2007或this one for Office 2010/2013编程设置的操作之一。这些表格类似,相当大,包括在这里,但我将参考你的第二个子弹中的那个。
Action : Start a script Constant in olRuleActionType : olRuleActionRunScript Supported when creating new rules programmatically? : No Apply to olRuleReceive rules? : Yes Apply to olRuleSend rules? : No
还有其他人受限制。因此,在制定规则时,您需要牢记这一点。