0
votes

I have a software that use Rdo Redemption class to create an email in draft folder and then send the email.

It works fine for 99% of client machine. But only a few clients that have "Google App sync" in their Outlook. They experience the exception when REGDB_E_CLASSNOTREG error when call RdoMail.Send().

I can see an email is created successfully in draft folder. But cannot send out and got this class not register exception.

Here is my sample codes (following from http://www.dimastr.com sample):

set Session = CreateObject("Redemption.RDOSession")
Session.Logon
set Drafts = Session.GetDefaultFolder(olFolderDrafts)
set Msg = Drafts.Items.Add
set Account = Session.Accounts("Google App - peter.pan@...&quo t;)
Msg.Account = Account
Msg.To = "user@..."
Msg.Recipients.ResolveAll
Msg.Subject = "test"
Msg.Body = "Test body"
Msg.Save

' Have REGDB_E_CLASSNOTREG error when call Send()
Msg.Send

Notes: I tried to register Redemption.dll and Redemption64.dll but no luck.

The name of function fail is RDOMail.Send() (define in http://www.dimastr.com/redemption/RDOMail.htm)

Does anyone experience similar issue before ? Any solution for that issue (it seem only related to client machine that have Google App sync with MAPI) ? How can I found out each COM class not registered ?

Thanks !

1
I sent the debug version of Redemption to your private email address.Dmitry Streblechenko

1 Answers

0
votes

Finally, found out what is missing and solution of my issue:

Problem occurs when Outlook2016 (Outlook 2013) installed as "Click to Run" mode and "Google App sync" is setup. When RDOMail.Sned() is call, the REGDB_E_CLASSNOTREG error occurs.

After using ProcMon, we found out that the following registry keys are missing:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{9EADBD1A-447B-4240-A9DD-73FE7C53A981}]
@="CLSID_IMimeMessage"

[HKEY_CLASSES_ROOT\CLSID\{9EADBD1A-447B-4240-A9DD-73FE7C53A981}\InprocServer32]
@="C:\\Program Files\\Microsoft Office\\Root\\Office16\\OUTLMIME.DLL"
"ThreadingModel"="Both"

[HKEY_CLASSES_ROOT\CLSID\{9EADBD1A-447B-4240-A9DD-73FE7C53A981}\Typelib]
@="{9EADBD25-447B-4240-A9DD-73FE7C53A981}"

Once, we put these registry keys, RDOMail.Send() is working for MAPI Google App Sync email account.

I did further Google search and it seems Outlook C2R (Click to run) may not putting all COM registry correctly.