How to send emails from inside or outside your organization with Exchange 2007/2010/2013/Online using PowerShell.
Fast instructions:
- First of all you need to download and install the latest Microsoft EWS managed API.
- At the time of writing this post: Microsoft EWS managed API 2.2
- After that,
- Select the right DLL path
- Replace the username, password, EWS url
- copy&paste
- And run it in PowerShell!
#Import the DLL of Microsoft EWS, choose one
##Version 2.2
Import-module "C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll"
##For example if your version is 2.1 with x32 it will be
Import-module "C:\Program Files (x86)\Microsoft\Exchange\Web Services\2.1\Microsoft.Exchange.WebServices.dll"
#Create a Service Object and set Exchange 2010_SP2 version.
#If you don't set it, the default one is Exchange 2013
$version = [Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP2
$service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService($version)
#Set credentials
$username = "domain\username"
$password = "Your_Password"
$service.Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials -ArgumentList $username, $password
#EWS URL, if you do not want to use autodiscover
$url = "https://mail.domain.com/EWS/Exchange.asmx"
$service.Url = $url
#Create the Object and send e-mail
$message = New-Object Microsoft.Exchange.WebServices.Data.EmailMessage -ArgumentList $service
$message.From = "mail@domain.com"
$message.ToRecipients.Add('Recipient Name','recipient_1@domain.com')
$message.ToRecipients.Add('Recipient Name','recipient_2@domain.com')
##You can add more recipients, copying the line before
$message.Subject = "This is a test email"
$message.Body = "Message body. Mail from EWS."
#Send email, choose one
##If you want to send it directly
$message.SendAndSaveCopy()
##If you do not want to send it, only to save to drafts and send later
$message.Save()
More information:
Hope it helps!
No comments:
Post a Comment