我有以下powershell代码来检查收件箱中是否有任何邮件,并将它们移动到收件箱下的相关子文件夹(如果文件夹不存在则创建该文件夹)
function CreateFolder($MailboxName)
{
"Mailbox Name : " + $MailboxName
"Folder Name : " + $newFolderName
$folderid = new-object Microsoft.Exchange.WebServices.Data.FolderId([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox,$MailboxName)
$ibInboxFolder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($exchangeservice,$folderid)
$fvFolderView = new-object Microsoft.Exchange.WebServices.Data.FolderView(1)
$SfSearchFilter = new-object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo([Microsoft.Exchange.WebServices.Data.FolderSchema]::DisplayName,$newFolderName)
$findFolderResults = $exchangeService.FindFolders($ibInboxFolder.Id,$SfSearchFilter,$fvFolderView)
if ($findFolderResults.TotalCount -eq 0)
{
"Doesn't Exist"
$NewFolder = new-object Microsoft.Exchange.WebServices.Data.Folder($exchangeService)
$NewFolder.DisplayName = $newFolderName
$NewFolder.Save([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox)
"Folder Created"
$mailItem.Move($findFolderResults.id)
}
else
{
"Folder Already Exist"
$mailItem.Move($findFolderResults.id)
}
}
Add-Type -Path "C:\Program Files\Microsoft\Exchange\Web
Services\2.2\Microsoft.Exchange.WebServices.dll"
#$creds = Get-Credential
$global:exchangeService = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2013_SP1)
$exchangeService.Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials -ArgumentList $creds.UserName, $creds.GetNetworkCredential().password
$exchangeService.Url = "https://outlook.office365.com/EWS/Exchange.asmx"
$inbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($exchangeService,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox)
$view = new-object Microsoft.Exchange.WebServices.Data.ItemView(10)
$mailItems = $inbox.FindItems($view)
foreach($mailItem in $mailItems)
{
$newFolderName = $mailItem.From.Name #$mailItem.Sender.Name
CreateFolder($creds.UserName)
}
但是当它运行时,我会为每个邮件项目获得以下输出:
Mailbox Name : bob.gently@bob.com
Folder Name : Gently, Bob
Folder Already Exist
ToRecipients : {}
BccRecipients : {}
CcRecipients : {}
ConversationTopic :
ConversationIndex :
From :
IsAssociated :
IsDeliveryReceiptRequested :
IsRead :
[ ... ]
如何隐藏$mailItem.Move
输出?它与$findFolderResults.id
是一个数组有关吗?
答案 0 :(得分:0)
根据gpunktschmitz的评论只需要追加| out-null隐藏输出