Microsoft Troubleshooting

Table of Contents

  1. Office 365: StoreDriver.Rules; message is deleted by mailbox rules”
  2. Exchange Distribution List Logic

“Office 365: StoreDriver.Rules; message is deleted by mailbox rules”

Background

There is no reason, it happened without the user doing anything and according to Microsoft there is not an always valid explanation, it does not matter evidently, the important thing is to solve the anomaly. An Office 365 user stops receiving meeting invitation emails even though your Outlook calendar works perfectly and other emails can be received. The Exchange logs show only this message regarding the issue: > Reason: [Stage: DeliverPreDelivery]; StoreDriver.Rules; message is deleted by mailbox rules.

Solution

  • Save any rules that the user has created on his inbox. You can skip this step if the user doesnt have any rules created. You can see the user defined roles by going to File > Manage Rules and Alerts.
  • Download the latest version of MFCMAPI from GitHub (github.com/stephenegriffin/mfcmapi/releases/latest), there is no need to install it.
  • From Tools → Options make sure that both Use the MDB_ONLINE flag when calling OpenMsgStore and Use the MAPI_NO_CACHE flag when calling OpenEntry  are enabled, click OK to confirm.
  • From Session → Options confirm the Outlook mail profile to be used and double-click the user’s email address.
  • Open Top of Information Store, now right click on Inbox and select Open associated contents table: ![[Pasted image 20220801111823.png]]
  • Look for the column called Message Class, click on it to reorder it and locate the item IPM.Rule.Version2.Message, then select and delete (right button → Delete message) all the IPM.Rule.Version2.Message entries: ![[Pasted image 20220801111922.png]]
  • Select Permanent delete passing DELETE_HARD_DELETE (unrecoverable) and click OK to confirm:
  • Problem should be resolved now. Just close MFCMAPI and reopen Outlook.

Source

Exchange Dynamic Distribution List Logic

The Exchange Online portal is limited in the logic that can be performed. If you need to implement advanced logic, or if you need to troubleshoot logic, then you need to use powershell.

  1. First login with Exchange Online powershell module.

    Import-Module ExchangeOnlineManagement
    Connect-ExchangeOnline
  2. Next craft the logic you will use for the dynamic distribution group. For example, {(RecipientTypeDetailsValue -eq 'UserMailbox') -and (Company -eq 'Xenter, Inc.')} will filter only active users who have the company name Xenter, Inc.. This is useful as the HR ERP system will auto provision users with that company name in Azure AD. Thus, with this logic you get back a list of active employees. Inactive employees wont show as they would not be assigned a mailbox anymore. Use the below command to test the logic:

    $Filter = "{(RecipientTypeDetailsValue -eq 'UserMailbox') -and (Company -eq 'Xenter, Inc.')}"
    Get-Recipient -RecipientPreviewFilter $Filter
  3. Once the filter is ready, you can set it for the dynamic distribution group:

    Set-DynamicDistributionGroup -Identity "All Global Employees" -RecipientFilter "{(RecipientTypeDetailsValue -eq 'UserMailbox') -and (Company -eq 'Xenter, Inc.')}"

You can also check the current filter rules for a dynamic distribution group using this command:

Get-DynamicDistributionGroup -Identity "All Global Employees"

For more information on managing dynamic distribution list logic, see this link.