So, let’s send and e-mail directly from SharePoint Online.
The e-mail will appear as being sent from: no-reply@sharepointonline.com
So, here goes:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
clear #Load SharePoint CSOM Assemblies Add-Type -Path "C:\csom\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\csom\Microsoft.SharePoint.Client.Runtime.dll" #variables region. $siteURL="https://tenant.sharepoint.com/teams/Asite" $spUserName="user@domain.com" $BCCUserName = "user@domain.com" $ccUserName = "user@domain.com" $toUserName = "user@domain.com" $emailBody = "Test email from SharePoint online CSOM PowerShell script." $password = "mysecretpassword" #variables region end. $securePassword= $Password | ConvertTo-SecureString -AsPlainText -Force #Setup the Context try { $ctx = New-Object Microsoft.SharePoint.Client.ClientContext($siteURL) $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($spUserName, $securePassword) $clientCSOMEMailProperties=New-Object Microsoft.SharePoint.Client.Utilities.EmailProperties $clientCSOMEMailProperties.BCC= [Collections.Generic.List[String]]@($BCCUserName) $clientCSOMEMailProperties.CC=[Collections.Generic.List[String]]@($CCUserName) $clientCSOMEMailProperties.To=[Collections.Generic.List[String]]@($ToUserName) $clientCSOMEMailProperties.From=$spUserName $clientCSOMEMailProperties.Body=$emailBody $clientCSOMEMailProperties.Subject="Test email from SharePoint online CSOM PowerShell script." $csomUtility=[Microsoft.SharePoint.Client.Utilities.Utility]::SendEmail($ctx, $clientCSOMEMailProperties) $ctx.ExecuteQuery() $ctx.Dispose() } catch { $errorMessage = $_.Exception.Message +"in sending email from CSOM SharePoint online"; Write-Host $errorMessage -BackgroundColor Red Write-Log $errorMessage } Write-Host "##########################################################" Write-Host "Test email from SharePoint online CSOM PowerShell script." -ForegroundColor Green |
Enjoy!