Search code examples
exchange-servermapioutlook-redemption

Data Loss Prevention policy making OpenMsgStore fail (0x80040312)


When DLP policy is enabled, Redemption fails with the error: "All business e-mail messages are protected based on a policy set in your organization. There was an error opening the protected e-mail message."

ulLowLevelError: 2147746578 (i.e. 0x80040312)
ulContext: 805701633 (0x30060801)

Is there any way around this?

The error occurs when trying to access the IPMRootFolder property of a Store object:

// A previous version of the code was multi-threaded, it is no longer.
Session = OutlookRpcLoader.new_RDOSession();
Session.Logon(ProfileName: profile, ShowDialog: false, NewSession: true);
var stores = Session.Stores;
var store = stores["{STORE-NAME}"];
var root = store.IPMRootFolder;

The call stack shows that Redemption.IRDOStore.get_IPMRootFolder() threw the exception.

Edit

This is seen when using Redemption version 5.22.0.5498 loaded via the RedemptionLoader class in .NET (registry-free COM).
When testing with Redemption version 5.19.0.5238 from VBScript using CreateObject(), the error doesn't occur.
Could anything have changed between v5.19 and v5.22?


Solution

  • I believe this was caused by AppLocker rules blocking unsigned binaries. The resolution was to either code-sign the files or add the program to the AppLocker allow-list.