Advertisement
Old-Lost

Sample using EWS

Mar 16th, 2017
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Function Set-TermInboxRule() {
  2.  
  3.     param(
  4.         [Parameter(Mandatory=$true, Position=0)]
  5.         [Alias('Username')]
  6.         [System.String]
  7.         $userID
  8.     )
  9.  
  10.     Import-Module -Name "C:\Program Files\Microsoft\Exchange\Web Services\2.0\Microsoft.Exchange.WebServices.dll"
  11.  
  12.     $user = Get-ADUser -Identity $userID
  13.  
  14.     #Enter credential to connect to Exchange
  15.     $psCred = Get-Credential
  16.     $cred = New-Object System.Net.NetworkCredential($psCred.UserName.ToString(),$psCred.GetNetworkCredential().password.ToString())
  17.  
  18.     #Create template email message
  19.     $service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService
  20.     $service.Credentials = $cred
  21.     $service.AutodiscoverUrl("$($user.UserPrincipalName)",{$true})
  22.     $templateEmail = New-Object Microsoft.Exchange.WebServices.Data.EmailMessage($service)
  23.  
  24.     $templateEmail.ItemClass = "IPM.Note.Rules.ReplyTemplate.Microsoft"
  25.     $templateEmail.IsAssociated = $true
  26.     $templateEmail.Subject = "$($user.Name) is no longer with <company name>"
  27.  
  28.     $bodyString = Read-MultiLineInputBoxDialog "Enter the message" "Message" $htmlBodyString
  29.     $bodyString = $bodyString.replace("`n", "<BR>`n")
  30.     $templateEmail.Body = New-Object Microsoft.Exchange.WebServices.Data.MessageBody($bodyString)
  31.     $PidTagReplyTemplateId = New-Object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition(0x65C2, [Microsoft.Exchange.WebServices.Data.MapiPropertyType]::Binary)
  32.     $templateEmail.SetExtendedProperty($PidTagReplyTemplateId, [System.Guid]::NewGuid().ToByteArray())
  33.     $templateEmail.Save([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox)
  34.  
  35.     #Create Inbox Rule
  36.     $inboxRule = New-Object Microsoft.Exchange.WebServices.Data.Rule
  37.     $inboxRule.DisplayName = "Termination Auto Reply"
  38.     $inboxRule.IsEnabled = $true
  39.     $inboxRule.Conditions.SentToOrCcMe = $true
  40.     $inboxRule.Actions.ServerReplyWithMessage = $templateEmail.Id
  41.     $createRule = New-Object Microsoft.Exchange.WebServices.Data.CreateRuleOperation[] 1
  42.     $createRule[0] = $inboxRule
  43.     $service.UpdateInboxRules($createRule,$true)
  44.  
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement