2016-03-02 60 views
0

我想通過Powershell發出郵箱項目的批准,但似乎無法找到正確的方法。這是我迄今使用的代碼。如何通過Powershell在Outlook中設置投票響應

Add-type -assembly "Microsoft.Office.Interop.Outlook" 
$olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type] 
$outlook = new-object -comobject outlook.application 
$namespace = $outlook.GetNameSpace("MAPI") 
$recipient = $namespace.CreateRecipient('[email protected]') 
$recipient.Resolve(); 
$sharedFolder = $namespace.GetSharedDefaultFolder($recipient, $olFolders::olFolderInBox) 
$sharedFolder.Items 

來自$ sharedFolder的成員對象。項目包含VotingOptions和VotingResporse周圍的字符串屬性,但我沒有看到執行批准投票的方法。任何幫助表示讚賞,因爲有數百個項目需要批量批准。謝謝。

回答

2

循環遍歷項目,爲每個項目讀取VotingOptions屬性,調用MailItem.Reply(返回新項目),在回覆消息中設置VotingResponse屬性,調用Send。

+0

感謝這就是我所需要的。 –

0

這是我根據Dmitiry的輸入結束的代碼。

Add-type -assembly "Microsoft.Office.Interop.Outlook" 
$olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type] 
$outlook = new-object -comobject outlook.application 
$namespace = $outlook.GetNameSpace("MAPI") 
$recipient = $namespace.CreateRecipient('[email protected]') 
$recipient.Resolve() 
$sharedFolder = $namespace.GetSharedDefaultFolder($recipient, $olFolders::olFolderInBox) 
$messages = $sharedFolder.Items | Where-Object { $_.subject -eq "Approval Required" } 
foreach ($message in $messages) 
{ 
    $reply = $message.Reply() 
    $reply.VotingResponse = "Approve" 
    $reply.Send() 
}