Placing this here because it's too long for that comment section.
Taming your mailbox is a question of saying, are you talking just you on your stand-alone client (fat, cloud or both - remember you can add your Outlook.com account directly in your Outlook fat client.) or for users in your enterprise.
You don't use Exchange cmdlets to control local Outlook. To use Exchange cmdlets you must install the Exchange Management Shell on your computer ...
Install the Exchange management tools
...or use PowerShell Implicit Remoting to proxy those cmdlets to your host. Implicit remoting is how you use Exchange cmdlets for O365 as well. These are well documented/details by Microsoft and plenty of blogs all over the web and in Youtube videos.
Connect to Office 365 PowerShell
Connect to all Office 365 services in a single Windows PowerShell
window
Connect to all Office 365 Services PowerShell (Supports MFA too)
Even prebuilt module for this effort.
Connect-O365 1.7.9
Connect to Office 365 Services using PowerShell
PowerShell script with helper functions to connect to Office 365 or
Exchange On-Premises. Makes it easy to connect to different Office 365
services using the same credentials (non-MFA). No more needing to
remember various ways to connect to each workload.
Managing users’ Outlook rules from Exchange Management Shell (with
PowerShell)
Youtube - Powershell O365
Outlook online has a Rest API to work with as does Exchange, EWS
Office 365 Management APIs overview
Outlook client
Youtube -
Outlook REST APIs offer an easy way to access Mail, Calendar and
Contacts data for any Office 365 or outlook.com user. In this video,
we will go over some of the key functionality that is introduced in
V2.0 of the API: Webhooks, Photos, Reminders and Timezone.
Use PowerShell to Data Mine Your Outlook Inbox
# Get-OutlookInBox function
Function Get-OutlookInBox
{
<#
.Synopsis
This function returns InBox items from default Outlook profile
.Description
This function returns InBox items from default Outlook profile. It
uses the Outlook interop assembly to use the olFolderInBox enumeration.
It creates a custom object consisting of Subject, ReceivedTime, Importance,
SenderName for each InBox item.
*** Important *** depending on the size of your InBox items this function
may take several minutes to gather your InBox items. If you anticipate
doing multiple analysis of the data, you should consider storing the
results into a variable, and using that.
.Example
Get-OutlookInbox |
where { $_.ReceivedTime -gt [datetime]”5/5/11″ -AND $_.ReceivedTime -lt `
[datetime]”5/10/11″ } | sort importance
Displays Subject, ReceivedTime, Importance, SenderName for all InBox items that
are in InBox between 5/5/11 and 5/10/11 and sorts by importance of the email.
.Example
Get-OutlookInbox | Group-Object -Property SenderName | sort-Object Count
Displays Count, SenderName and grouping information for all InBox items. The most
frequently used contacts appear at bottom of list.
.Example
$InBox = Get-OutlookInbox
Stores Outlook InBox items into the $InBox variable for further
“offline” processing.
.Example
($InBox | Measure-Object).count
Displays the number of messages in InBox Items
.Example
$InBox | where { $_.subject -match ‘2011 Scripting Games’ } |
sort ReceivedTime -Descending | select subject, ReceivedTime -last 5
Uses $InBox variable (previously created) and searches subject field
for the string ‘2011 Scripting Games’ it then sorts by the date InBox.
This sort is descending which puts the oldest messages at bottom of list.
The Select-Object cmdlet is then used to choose only the subject and ReceivedTime
properties and then only the last five messages are displayed. These last
five messages are the five oldest messages that meet the string.
.Notes
NAME: Get-OutlookInbox
AUTHOR: ed wilson, msft
LASTEDIT: 05/13/2011 08:36:42
KEYWORDS: Microsoft Outlook, Office
HSG: HSG-05-26-2011
.Link
Http://www.ScriptingGuys.com/blog
#Requires -Version 2.0
#>
Add-type -assembly “Microsoft.Office.Interop.Outlook” | out-null
$olFolders = “Microsoft.Office.Interop.Outlook.olDefaultFolders” -as [type]
$outlook = new-object -comobject outlook.application
$namespace = $outlook.GetNameSpace(“MAPI”)
$folder = $namespace.getDefaultFolder($olFolders::olFolderInBox)
$folder.items |
Select-Object -Property Subject, ReceivedTime, Importance, SenderName
} #end function Get-OutlookInbox
You must be an admin in O365 to do this. Outlook in O365 is not Exchange, just like Outlook on your desktop is not Exchange. You must use Outlook COM (as noted above and to follow) to work on Outlook client, this is not a thing for Online.
PowerShell Retrieves Outlook Addresses
How to: Send mail from Powershell using Outlook
Manipulating Outlook objects with Powershell
These cmdlets refer to on-premises Exchange Server PowerShell. – harrymc – 2020-02-09T19:36:05.987
@harrymc Yes, so you're saying I can't use them if we have an off-premise exchange server that is hosted with Microsoft? I should at least be able to control my email client right? – leeand00 – 2020-02-09T19:38:38.157
You can control your local Exchange Server with them, not your Outlook client. – harrymc – 2020-02-09T19:40:23.477