Install ADFS on Azure VM step by step

Move Emails From one folder to another usnig EWS manged API.

To Move Emails from One Folder to Another use the Below Scripts.
Note: This script is using Impersonation method, so you should use the account which has application impersonate rights.


#Moving Emails from one folder to Another
#Author: Sunil Chauhan
#Email:sunilkms@gmail.com
#URL:Sunil-Chauhan.blogspot.com

#NOTE: This script is using Impersonation method, so you should use the account which has application impersonate rights.

#Change The Below parameters as your requirement
#no of items to move
$items=10
#Mailbox to move from
$mailbox=testMbx@myCompany.com
#Impersonate user Account
#if you wants to use the defaults credentials from the logged on user, you can use below options.
#$Service.UseDefaultCredentials = $true
$userName=admin@mycompany.com
$password=MyPasswrod
#folder details
$SourceFolder = "SourceFolder"
$destinationFolder="DestinationFolder"
#EWS url for your orgnization
$uri=[system.URI] "https://myCompany.com/ews/exchange.asmx"
#define EWS Dll file Path
$dllpath = "D:\sunil\Microsoft.Exchange.WebServices.dll"

#-------------------------------------------------------------------------------------

$pass = $password
$AccountWithImpersonationRights = $userName
$MailboxToImpersonate = $mailbox
Import-Module $dllpath

## Set Exchange Version
$ExchangeVersion = [Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP2

## Create Exchange Service Object
$service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService($ExchangeVersion)

$service.Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials -ArgumentList $AccountWithImpersonationRights, $pass
$service.url = $uri

Write-Host 'Using ' $AccountWithImpersonationRights ' Account to work in ' $MailboxToImpersonate
$service.ImpersonatedUserId = New-Object Microsoft.Exchange.WebServices.Data.ImpersonatedUserId([Microsoft.Exchange.WebServices.Data.ConnectingIdType]::SMTPAddress,$MailboxToImpersonate );

#Connect to the Inbox
$MailboxRootid= new-object Microsoft.Exchange.WebServices.Data.FolderId `
([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::MsgFolderRoot,$ImpersonatedMailboxName)
$MailboxRoot=[Microsoft.Exchange.WebServices.Data.Folder]::Bind($service,$MailboxRootid)

#Getting Folders in the Mailbox
# you can change to folder view if there are more them 100 folder in the mailbox
$FolderList = new-object Microsoft.Exchange.WebServices.Data.FolderView(100)
$FolderList.Traversal = [Microsoft.Exchange.WebServices.Data.FolderTraversal]::Deep
$findFolderResults = $MailboxRoot.FindFolders($FolderList)

#identifying Source Folder
$SourceFolderView=$findFolderResults | ? {$_.DisplayName -match $SourceFolder}
$psPropset = new-object Microsoft.Exchange.WebServices.Data.PropertySet `
([Microsoft.Exchange.WebServices.Data.BasePropertySet]::FirstClassProperties)
$psPropset.RequestedBodyType = [Microsoft.Exchange.WebServices.Data.BodyType]::HTML

#Retrieving items from Source Folder 
$SourceFolderItemView=New-Object Microsoft.Exchange.WebServices.Data.ItemView($items)  
$SourceFolderItems=$service.FindItems($SourceFolderView.Id,$SourceFolderItemView)  
[Void]$service.LoadPropertiesForItems($SourceFolderItems,$psPropset)

#Identifying destination Folder
$trgFolder=$findFolderResults | ? {$_.DisplayName -match $destinationFolder}

# Now Moving All Items from Source Folder to Target Folder.

foreach ($EmailItem in $SourceFolderItems) 
 {
  $EmailItem.move($trgFolder.id) | Out-null ;
  write-host "Moved Item:" $EmailItem.subject
 }

Comments