So I have found the following ways after much trial and error this morning:

Solution 1 - Create URL using the ID from email URL

Firstly for this to work you need to turn off conversation mode in OWA, you can do this by clicking the cog in the top right whilst in your mailbox then under "Conversation View" set this to off. (This is so the URL when you have an email selected will give you the message/item ID and not the conversation ID.)

Then select the email that you want to create a link to, the URL will look like below but with [MESSAGE_ID] showing the full message ID in a URL encoded format.

https://outlook.office.com/mail/inbox/id/[MESSAGE_ID]

Copy the full [MESSAGE_ID] and insert it as shown in the following URL:

https://outlook.office.com/owa/?ItemID=[MESSAGE_ID]&viewmodel=ReadMessageItem&path=&exvsurl=1

When opening this link it will take you directly to the email.

Please see the below powershell script that will open a form, you insert the URL copied from the browser into the 1st text box and click "Convert", this will then return the URL that will point to the email in O365 and clear the 1st field so that its quick to convert a few in a row, also the window should stay top most. This will still require the conversion mode to be set to off as mentioned in the 1st paragraph. I would like to add that this has been very quickly knocked up using PoshGUI editor and anchors etc have not been set so expanding the window may not have the desired effect.

Function Convert-URL{
Param(
    [String]$O365_URL
)
    $inputURL = $O365_URL
    $returnURL = "https://outlook.office.com/owa/?ItemID=" + ($inputURL | Split-Path -Leaf) + "&viewmodel=ReadMessageItem&path=&exvsurl=1"
    $returnURL
}

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()

$Form                            = New-Object system.Windows.Forms.Form
$Form.ClientSize                 = '735,80'
$Form.text                       = "O365 URL Convertor"
$Form.TopMost                    = $true

$TextBox1                        = New-Object system.Windows.Forms.TextBox
$TextBox1.multiline              = $false
$TextBox1.width                  = 446
$TextBox1.height                 = 20
$TextBox1.location               = New-Object System.Drawing.Point(150,5)
$TextBox1.Font                   = 'Microsoft Sans Serif,10'

$Label1                          = New-Object system.Windows.Forms.Label
$Label1.text                     = "Insert URL"
$Label1.AutoSize                 = $true
$Label1.width                    = 25
$Label1.height                   = 10
$Label1.location                 = New-Object System.Drawing.Point(21,12)
$Label1.Font                     = 'Microsoft Sans Serif,10'

$Label2                          = New-Object system.Windows.Forms.Label
$Label2.text                     = "Returned URL"
$Label2.AutoSize                 = $true
$Label2.width                    = 25
$Label2.height                   = 10
$Label2.location                 = New-Object System.Drawing.Point(21,38)
$Label2.Font                     = 'Microsoft Sans Serif,10'

$TextBox2                        = New-Object system.Windows.Forms.TextBox
$TextBox2.multiline              = $false
$TextBox2.width                  = 446
$TextBox2.height                 = 20
$TextBox2.location               = New-Object System.Drawing.Point(150,34)
$TextBox2.Font                   = 'Microsoft Sans Serif,10'

$Button1                         = New-Object system.Windows.Forms.Button
$Button1.text                    = "Convert"
$Button1.width                   = 100
$Button1.height                  = 30
$Button1.location                = New-Object System.Drawing.Point(619,9)
$Button1.Font                    = 'Microsoft Sans Serif,10'

$Form.controls.AddRange(@($TextBox1,$Label1,$Label2,$TextBox2,$Button1))

$Button1.Add_Click({$TextBox2.Text = Convert-URL -O365_URL $TextBox1.Text; $TextBox1.Text = "";})

$Form.ShowDialog()

Solution 2 - Office 365 Graph API

The property "Weblink" is returned from the "Get-Message" API request.

Please see the below sources that show this property:

Under the response you will see the "weblink" property, the URL is constructed the same as the solution above.

https://docs.microsoft.com/en-us/graph/api/message-get?view=graph-rest-1.0&tabs=http

The following link is to the graph explorer, of which you can sign in and interact with the graph API to see a working example, after signing in click "Get My Mail" in the left pane". This will return an API response in the bottom right of all you emails and you will the weblink returned for each email in this window.

https://developer.microsoft.com/en-us/graph/graph-explorer

However whilst the above is not very practical to use manually, this is where I would start to make a script / programme to retrieve the URL.

Answer from CraftyB on Stack Exchange
Top answer
1 of 7
14

So I have found the following ways after much trial and error this morning:

Solution 1 - Create URL using the ID from email URL

Firstly for this to work you need to turn off conversation mode in OWA, you can do this by clicking the cog in the top right whilst in your mailbox then under "Conversation View" set this to off. (This is so the URL when you have an email selected will give you the message/item ID and not the conversation ID.)

Then select the email that you want to create a link to, the URL will look like below but with [MESSAGE_ID] showing the full message ID in a URL encoded format.

https://outlook.office.com/mail/inbox/id/[MESSAGE_ID]

Copy the full [MESSAGE_ID] and insert it as shown in the following URL:

https://outlook.office.com/owa/?ItemID=[MESSAGE_ID]&viewmodel=ReadMessageItem&path=&exvsurl=1

When opening this link it will take you directly to the email.

Please see the below powershell script that will open a form, you insert the URL copied from the browser into the 1st text box and click "Convert", this will then return the URL that will point to the email in O365 and clear the 1st field so that its quick to convert a few in a row, also the window should stay top most. This will still require the conversion mode to be set to off as mentioned in the 1st paragraph. I would like to add that this has been very quickly knocked up using PoshGUI editor and anchors etc have not been set so expanding the window may not have the desired effect.

Function Convert-URL{
Param(
    [String]$O365_URL
)
    $inputURL = $O365_URL
    $returnURL = "https://outlook.office.com/owa/?ItemID=" + ($inputURL | Split-Path -Leaf) + "&viewmodel=ReadMessageItem&path=&exvsurl=1"
    $returnURL
}

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()

$Form                            = New-Object system.Windows.Forms.Form
$Form.ClientSize                 = '735,80'
$Form.text                       = "O365 URL Convertor"
$Form.TopMost                    = $true

$TextBox1                        = New-Object system.Windows.Forms.TextBox
$TextBox1.multiline              = $false
$TextBox1.width                  = 446
$TextBox1.height                 = 20
$TextBox1.location               = New-Object System.Drawing.Point(150,5)
$TextBox1.Font                   = 'Microsoft Sans Serif,10'

$Label1                          = New-Object system.Windows.Forms.Label
$Label1.text                     = "Insert URL"
$Label1.AutoSize                 = $true
$Label1.width                    = 25
$Label1.height                   = 10
$Label1.location                 = New-Object System.Drawing.Point(21,12)
$Label1.Font                     = 'Microsoft Sans Serif,10'

$Label2                          = New-Object system.Windows.Forms.Label
$Label2.text                     = "Returned URL"
$Label2.AutoSize                 = $true
$Label2.width                    = 25
$Label2.height                   = 10
$Label2.location                 = New-Object System.Drawing.Point(21,38)
$Label2.Font                     = 'Microsoft Sans Serif,10'

$TextBox2                        = New-Object system.Windows.Forms.TextBox
$TextBox2.multiline              = $false
$TextBox2.width                  = 446
$TextBox2.height                 = 20
$TextBox2.location               = New-Object System.Drawing.Point(150,34)
$TextBox2.Font                   = 'Microsoft Sans Serif,10'

$Button1                         = New-Object system.Windows.Forms.Button
$Button1.text                    = "Convert"
$Button1.width                   = 100
$Button1.height                  = 30
$Button1.location                = New-Object System.Drawing.Point(619,9)
$Button1.Font                    = 'Microsoft Sans Serif,10'

$Form.controls.AddRange(@($TextBox1,$Label1,$Label2,$TextBox2,$Button1))

$Button1.Add_Click({$TextBox2.Text = Convert-URL -O365_URL $TextBox1.Text; $TextBox1.Text = "";})

$Form.ShowDialog()

Solution 2 - Office 365 Graph API

The property "Weblink" is returned from the "Get-Message" API request.

Please see the below sources that show this property:

Under the response you will see the "weblink" property, the URL is constructed the same as the solution above.

https://docs.microsoft.com/en-us/graph/api/message-get?view=graph-rest-1.0&tabs=http

The following link is to the graph explorer, of which you can sign in and interact with the graph API to see a working example, after signing in click "Get My Mail" in the left pane". This will return an API response in the bottom right of all you emails and you will the weblink returned for each email in this window.

https://developer.microsoft.com/en-us/graph/graph-explorer

However whilst the above is not very practical to use manually, this is where I would start to make a script / programme to retrieve the URL.

2 of 7
10

You can get an email URL by:

  1. Right-click the email and/or thread and "Create Task"
  2. Switch to To-Do / Tasks (bottom left of OWA interface menu, checkmark icon)
  3. Click on the task
  4. Right side info pane opens up
  5. Copy the link from the text "Open in Outlook"

This is a link to the message and/or the conversation. I haven't tested specifically but it will at least get you to a message from the thread you're looking for.

It's a little bit of a pain for high-level use but casual integration with a task program would be fine.

This does open the message in a new tab, which is not ideal; but again, it may be more for memory/follow-up than for quick-fire GTD stuff.

Discussions

How do I get email links to open Outlook and not the web browser?
In Windows 11 settings select “Apps” then select “Default apps” scroll down and select "Mail” then select MAILTO” select Outlook and click “Set Default” Windows 10 is similar. More on reddit.com
🌐 r/Outlook
14
3
December 2, 2023
Outlook for Android web links not using default browser
Hey Watcher3210! Welcome to r/Outlook ! This is a public community. To protect your privacy, do not post any personal information such as your email address, phone number, product key, password, or credit card number. Please be sure to have read our Rules of Conduct and be cognisant of how the system works here. Make sure that your flair is always set to Status: Open otherwise you may cease receiving responses from us. Status: Open — Need help Status: Pending Reply — Awaiting OP's response Status: Resolved — Closed Beware of scammers posting fake support numbers or 3rd party commercial products/services. Contact Microsoft Support if you need help. I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns. More on reddit.com
🌐 r/Outlook
67
33
May 29, 2020
🌐
Microsoft Outlook
outlook.office365.com › mail › inbox
Outlook – free personal email and calendar from Microsoft
Get free Outlook email and calendar, plus Office Online apps like Word, Excel and PowerPoint. Sign in to access your Outlook, Hotmail or Live email account.
🌐
Microsoft 365
microsoft365.com
Login | Microsoft 365
{"ariaCollectorUrl":"https://browser.pipe.aria.microsoft.com/Collector/3.0/","ariaTenant":"","buildDateUtc":"2025-12-02 19:34:17Z","buildId":"f1abb943-dd7b-7c45-549f-0bd93b6cfd3d","clientOTelMediumSchedulePriorityEnabled":false,"clientOTelHighSchedulePriorityEnabled":false,"clientOTelImmediateSchedulePriorityEnabled":true,"corpNet":false,"correlationId":"d7ce737a-8d3d-48a7-865d-0435e6670607","deploymentEnvironment":"prod","devEnvironment":"ServiceFabric","ecsRing":"StandardRelease","flights":"P-R-1088282-1-1,P-E-1233817-3-3,P-R-1725766-2-7,P-R-1719318-4-12,P-R-1717842-2-11,P-R-1708585-4-11,P-R
🌐
Intermedia
support.intermedia.com › app › articles › detail › a_id › 25113 › ~ › what-is-owa-(outlook-web-access)?-how-does-it-work?
What Is OWA (Outlook Web Access)? How Does It Work?
Intermedia hosted Exchange customers can access their mailbox through OWA by navigating to the unified login page, selecting webmail and entering their email address and password. Link to unified login page: https://exchange.intermedia.net/ControlPanel/Login?ClientType=WebMail.
🌐
Microsoft Learn
learn.microsoft.com › en-us › exchange › hybrid-deployment › simplify-owa-url
Simplify the Outlook Web App URL for Microsoft 365 or Office 365 Hybrid | Microsoft Learn
January 26, 2023 - Tell the users the new URL (for example, https://outlook.com/owa/contoso.com): The issues with this option are: The URL is complex. The experience isn't seamless for the affected users. Configure the TargetOWAUrl setting on the organization relationship: The issues with this option are: The endpoint for the cloud mailboxes is external (it's not in the domain that users expect). The endpoint requires the domain in the URL (to distinguish between Microsoft 365 Apps for business and outlook.com consumer offerings).
Find elsewhere
🌐
Google Play
play.google.com › store › apps › details
Microsoft Outlook - Apps on Google Play
Easily filter out unwanted spam ... your emails and events at a glance, get the Outlook companion app - including a complication and tile - for Wear OS. Consumer Health Data Privacy Policy: https://go.microsoft.com/fwlink/?linkid=2259814...
Rating: 4.4 ​ - ​ 10.4M votes
🌐
Microsoft
owa.msoutlookonline.net
OWA - msoutlookonline
Internet Explorer is not officially supported and your experience may not be optimal. For the best experience, please upgrade your browser · You’ll get more if you update your browser. Our layout and page behavior is optimized for the latest version of your browser
🌐
Business Insider
businessinsider.com › business insider › what is outlook web app? a guide to microsoft's web email service.
What is Outlook Web App? A guide to Microsoft's web email service.
August 23, 2022 - Outlook Web App, also known as Outlook on the web, allows you to access your Outlook email account from a web browser.
🌐
Zoom
support.zoom.com › hc › en › article
Installing the Zoom for Outlook add-in
January 14, 2025 - The Zoom for Outlook add-in allows you to manage scheduling within the Outlook web and desktop apps.
🌐
Apps
webmail.apps.mil › mail
Outlook - Web Mail
We cannot provide a description for this page right now
🌐
App Store
apps.apple.com › us › app › microsoft-outlook › id951937596
Microsoft Outlook App - App Store
2 weeks ago - Download Microsoft Outlook by Microsoft Corporation on the App Store. See screenshots, ratings and reviews, user tips, and more games like Microsoft Outlook.
Rating: 4.8 ​ - ​ 8.51M votes
🌐
University of Kassel
uni-kassel.de › its › en › it-dienste-software › e-mail-exchange-outlook-e-mail-kommunikation.html
E-mail Exchange - Outlook (e-mail communication) - ITS - Uni Kassel
The University of Kassel provides all members with a central email inbox that can be used in various ways, including webmail and email programs such as Microsoft Outlook.