Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
With the new Cloud-based Message Recall, we made major changes to how message recall works in the service. You can trigger Message Recall in the Classic Outlook, New Outlook, Outlook on the web, Outlook for Mac, and Outlook for Android/iOS. The process of initiating a recall from the Outlook client remains the same. But once the recall is initiated, the Message Recall feature agent intercepts the recall messages and then works to delete the original message from recipient mailboxes.
The recall request message generated by the client has the following properties:
- The message class is IPM.Outlook.Recall
- The message subject is "Recall: <Original Subject>"
The Message Recall feature agent intercepts these recall messages and attempts to hard-delete the message from recipient mailboxes. After the original message is successfully hard-deleted, mail Transport drops the Recall message. The flow looks like this:
Once the recall is initiated, a Message Recall Report email is sent within a few minutes to the mailbox that initiated the message recall. The Recall Report contains a link to check the recall status. Recall status is normally available for each recipient within a few minutes but could take longer for messages with many recipients. The system continues to recall for up to 24 hours.
Important
Recall reports are sent using the address Office365Reports@microsoft.com. Admins should ensure this sender address isn't blocked. If recall reports aren't delivered, use message trace to see if the recall report email message was blocked or quarantined.
If you choose the option to replace the message, recall deletes the original message and then Outlook sends the new message, which is processed for normal delivery. Admins can control several settings:
- Enable or disable the new cloud recall feature.
- Whether to recall messages that were already read.
- Optional recall notifications for recipients:
- For all recalled messages
- For read recalled messages only
- Maximum recallable message age - Previously, messages could be recalled regardless of age. The new Maximum Recallable Message Age setting restricts recalling older messages, with a default setting of 365 days. Tenant admins can configure it between 5 minutes and 10 years.
Settings available in the Exchange Admin Center:
Via Exchange Online PowerShell:
To connect to Exchange Online PowerShell, see Connect to Exchange Online PowerShell.
Run the following command to enable or disable message recall:
Set-OrganizationConfig -MessageRecallEnabled <$true | $false> -RecallReadMessagesEnabled <$true | $false>
Following command can control whether to recall messages that were already read:
Set-OrganizationConfig -RecallReadMessagesEnabled <$true | $false>
The following command enables or disables message recall notifications for recipients. Setting this parameter to $True enables notifications, while setting it to $False (default) disables them:
Set-OrganizationConfig -MessageRecallAlertRecipientsEnabled <$true | $false>
Once the -MessageRecallAlertRecipientsEnabled parameter is set to $True, the following cmdlet allows admins to specify if recall notifications should be sent only for read messages. Setting this parameter to $True enables notifications only for read messages, while $False (default) enables notifications for read and unread messages.
Set-OrganizationConfig -MessageRecallAlertRecipientsReadMessagesOnlyEnabled <$true | $false>
To restrict recalling older messages, run the following command:
Set-OrganizationConfig -MessageRecallMaxRecallableAge [DDDD.HH:MM:SS]
When a sender tries to recall a sent message older than what's allowed, the sender gets a notification saying that the message is too old to be recalled.
Cross-tenant message recall
With Cross-Tenant Message Recall, a tenant admin can add other Microsoft 365 tenants to an allow list. Once a tenant is on the list, senders from those allow-listed tenants can recall messages they’ve sent to recipients in the receiving tenant – just as they would for an intra-tenant recall. Control sits with the receiving tenant – the organization whose users received the messages. A cross-tenant recall is only honoured when the receiving tenant’s admin has explicitly allow-listed the sender’s tenant. This keeps the receiving organization in full control of which external tenants are permitted to recall messages from its users’ mailboxes.
Consider two organizations that work together, Contoso and Fabrikam, both of which are hosted in Microsoft 365:
- A Contoso admin adds Fabrikam’s tenant to Contoso’s cross-tenant recall allow list.
- A sender at Fabrikam recalls a message they previously sent to a recipient at Contoso.
- Because Contoso allow-listed Fabrikam, the recall is honored and processed like a standard recall against the Contoso recipient’s mailbox.
If Fabrikam isn't on Contoso’s allow list, the recall fails. The Fabrikam sender sees in the recall status report that the message can’t be recalled across organizations. Allow-listing governs inbound recalls into the receiving tenant. Each organization decides independently which external tenants it trusts to recall messages from its mailboxes.
Admins can configure these settings by using Exchange Online PowerShell.
First, enable or disable cross-tenant message recall for the receiving tenant. Set this parameter to $True to turn on the capability. Set it to $False (default) to turn it off:
Set-CrossTenantRecallConfiguration -CrossTenantRecallEnabled <$true | $false>
Specify external tenants to add or remove from the allowed list. Add the tenant IDs of the organizations you trust to perform recalls:
Set-CrossTenantRecallConfiguration -AllowedSenderTenantIds @{Add="<tenantId 1>","<tenantId 2>"}; {Remove="<tenantId 1>","<tenantId 2>"}
The administrator of the sending tenant can retrieve the tenant ID by running the following command:
Get-ConnectionInformation | fl TenantID
Use message trace to verify recall
Recall reports build their information based on message trace data. If you don't receive the recall report or if it doesn't update properly, use message trace to verify the recall status. If the recall was successful or if the recall failed after 24 hours, the Status value is Failed.
For example:
PS C:\> Get-MessageTraceV2 -SenderAddress user@contoso.com
Received Sender Address Recipient Address Subject Status
------------------- ---------------- ---------------------- ------------------------------------ ------
8/14/2023 9:51:20 PM user@contoso.com recipient1@contoso.com Recall: Testing recall functionality Failed
8/14/2023 9:51:20 PM user@contoso.com recipient2@contoso.com Recall: Testing recall functionality Failed
8/14/2023 9:51:20 PM user@contoso.com recipient3@contoso.com Recall: Testing recall functionality Failed
This result is normal. The message is dropped once recall is successful or after it times out (24 hours). The Status value is also Failed for any other message dropped by Transport. Message trace detail shows extra information in the Detail property of the Drop event that confirms whether recall was successful.
For example:
PS C:\> Get-MessageTraceV2 -SenderAddress user@contoso.com -MessageId "<Message ID of recall message>" | Get-MessageTraceDetailV2 -Event Drop | Format-List
Event : Drop
Action :
Detail : Reason: [Stage: OnPromotedEvent][Agent: Transport Message Recall Agent];Message recall process complete, dropping the recall email. Result:Success
The Detail property shows the recall process is complete with the Result value Success.
Tip
You get the MessageId value from the initial message trace results.
If the recall fails after 24 hours or for any other reason, message trace shows the Status value Failed, but the Drop even in the message trace detail shows the Result value Failed.
One limitation with message trace detail in Exchange Online PowerShell is the sender and recipient aren't included in the results.
Use the following PowerShell commands to add the sender and recipient values from the message trace results to the message trace detail results. You can output the results to the screen or to a CSV file.
$results = Get-MessageTraceV2 -MessageID "<message ID of recall message>" -StartDate <date> -EndDate <date>
$detail = foreach ($result in $results) {Get-MessageTraceDetailV2 -RecipientAddress $result.recipientaddress -MessageTraceId $result.messagetraceid | select organization, messageid, messagetraceid, date, event, action, detail, data, @{n='SenderAddress';e={$result.senderaddress}}, @{n='RecipientAddress';e={$result.recipientaddress}}}
$detail | Export-Csv "C:\Data\MsgTraceBrid.csv -Append -NoTypeInformation
Limitations
The new message recall feature works within the confines of an organization or Cross-Tenant (between two tenants in Exchange Online - Cross-Tenant Message Recall). You can't recall messages over the internet, or across organizations outside Exchange Online boundary. For hybrid customers, you also can't recall messages sent to the on-premises Exchange environment from cloud mailboxes.
Message Recall doesn't work in Outlook for Windows under the following conditions:
- Outlook is in Online mode.
- Multiple Exchange accounts are configured in the Outlook profile.
You can trigger a recall from shared mailboxes or delegated mailboxes with some limitations. See the FAQ section for details.
You can trigger a recall for messages sent on behalf of a distribution list. However, the recall report message is sent to all members of the distribution list. Currently, report recipients can't view the recall status report. Doing so requires sign in credentials, which the distribution list doesn't have.
Frequently Asked Questions
Recall for shared and delegated mailboxes
Messages sent to shared or delegated mailboxes can be recalled successfully by the sender.
There are two known issues with recall and shared mailboxes:
Messages sent from shared or delegated mailboxes can also be recalled. However, the report isn't viewable by the user connected to the shared or delegated mailbox. The report is visible only in a browser. The report requires authentication by the owning mailbox, and you can't sign in as the shared account. Signing in as a user with rights on the mailbox doesn't work.
Messages sent via shared or delegated mailboxes in Outlook for Windows are stored in the Sent Items folder of the authenticated user who sent the message. Recall initiated from the message in the Sent Items folder of the authenticated user would be successful (the same status report issue would exist).
Messages sent via shared or delegated mailboxes using Open another mailbox in Outlook on the web (formerly known as Outlook Web App or OWA) are stored in the Sent Items of the shared mailbox. In this scenario, if you open the shared mailbox in the same Outlook profile as the authenticated user via automapping or Open these additional mailboxes, the Recall option is greyed out when you attempt the recall from the Sent Items folder of the shared mailbox. The workaround is to open the shared mailbox in its own Outlook profile.
Do recalls show up for eDiscovery?
For mailboxes that have a Litigation or an In-Place Hold, the recalled message shows up in eDiscovery.
Do recalls show up in the mailbox audit logs?
No, not at this time.
Do forwarded messages get recalled?
- Messages automatically forwarded by a recipient to another mailbox within the same organization can be recalled.
- Messages that are automatically forwarded outside of the organization can't be recalled.
- Messages forwarded manually by the recipient can't be recalled.
- Messages forwarded by Inbox Rule (either forward or redirect) can't be recalled.
Does recall work for encrypted email?
Recalling messages encrypted with OME or MIP labels is supported if a sender is assigned Premium Encryption in Office 365 (PREMIUM_ENCRYPTION) service plan and triggers a recall in Outlook on the Web or new Outlook.
I use a non-Microsoft service that requires routing all email (including internal email) through the service. Does recall still work?
Message Recall now supports recalling intra-tenant messages that route externally then back into Exchange Online for delivery. However, for external round-trip routing recall to work as expected beyond the Exchange Online boundary, recall message headers must remain unmodified as they route external and back to Exchange Online. So, proper configuration of both the outbound and inbound connectors to the add-on service is required for this setup to function correctly. Refer to Scenario: Integrate Microsoft 365 or Office 365 with an email add-on service for detailed guidance.
Can I recall messages sent to mail enabled public folders?
No. Just like the classic Message Recall in Outlook for Windows, the Exchange Online Message Recall won’t recall messages sent to mail enabled public folders. This is by design.
Is there a limit on the number of recipients I can recall from with a single recall request?
Theoretically no – for a message you successfully sent, the recall action will be attempted and usually succeed for all eligible recipients regardless how many there are. However, the recall status report itself is currently limited to ~50k recipients.
Recommended articles
Recall or replace an email message that you sent - Microsoft Support
Exchange Online Message Recall Updates
Cloud-based Message Recall in Exchange Online - Microsoft Community Hub