Powershell WS在收件箱中打开子文件夹
如何打开收件箱中的文件夹 例如: 收件箱 文件夹 A(要素1-要素2) B(要素3-要素4) 我想读元素1到4Powershell WS在收件箱中打开子文件夹,powershell,exchangewebservices,Powershell,Exchangewebservices,如何打开收件箱中的文件夹 例如: 收件箱 文件夹 A(要素1-要素2) B(要素3-要素4) 我想读元素1到4 $service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService $service.Credentials = New-Object System.Net.NetworkCredential -ArgumentList $mail, $password $service.URL =
$service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService
$service.Credentials = New-Object System.Net.NetworkCredential -ArgumentList
$mail, $password
$service.URL = New-Object Uri("outlook.office365.com/EWS/Exchange.asmx")
# Set how many emails we want to read at a time
$numOfEmailsToRead = 5
# Index to keep track of where we are up to. Set to 0 initially.
$index = 0
# Do/while loop for paging through the folder
do {
# Set what we want to retrieve from the folder. This will grab the first $pagesize emails
$view = New-Object Microsoft.Exchange.WebServices.Data.ItemView($numOfEmailsToRead, $index)
# Retrieve the data from the folder
$findResults = $service.FindItems([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox, $view)
foreach ($item in $findResults.Items) {
# load the additional properties for the item
$item.Load($propertySet)
# Output the results
$msgProperty = New-Object Microsoft.Exchange.WebServices.Data.PropertySet([Microsoft.Exchange.WebServices.Data.EmailMessageSchema]::MimeContent)
$email = [Microsoft.Exchange.WebServices.Data.EmailMessage]::Bind($service, $item.Id, $msgProperty)
...
} while ($findResults.MoreAvailable)
感谢您的支持。您需要首先使用FindFolder操作查找文件夹ID,例如
## Find and Bind to Folder based on Path
#Define the path to search should be seperated with \
$PathToSearch = "\Inbox\Blah"
#Bind to the MSGFolder Root
$folderid = new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::MsgFolderRoot,"user@domain.com")
$tfTargetFolder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service,$folderid)
#Split the Search path into an array
$fldArray = $PathToSearch.Split("\")
#Loop through the Split Array and do a Search for each level of folder
for ($lint = 1; $lint -lt $fldArray.Length; $lint++) {
$fldArray[$lint]
#Perform search based on the displayname of each folder level
$fvFolderView = new-object Microsoft.Exchange.WebServices.Data.FolderView(1)
$SfSearchFilter = new-object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo([Microsoft.Exchange.WebServices.Data.FolderSchema]::DisplayName,$fldArray[$lint])
$findFolderResults = $service.FindFolders($tfTargetFolder.Id,$SfSearchFilter,$fvFolderView)
if ($findFolderResults.TotalCount -gt 0){
foreach($folder in $findFolderResults.Folders){
$tfTargetFolder = $folder
}
}
else{
"Error Folder Not Found"
$tfTargetFolder = $null
break
}
}
$tfTargetFolder