Email 在Redemption中调用RdoMail.Send()时出现REGDB_E_CLASSNOTREG错误

Email 在Redemption中调用RdoMail.Send()时出现REGDB_E_CLASSNOTREG错误,email,outlook-redemption,Email,Outlook Redemption,我有一个软件,使用Rdo Redemption类在草稿文件夹中创建电子邮件,然后发送电子邮件 它适用于99%的客户机。但只有少数客户的Outlook中有“谷歌应用同步”。当调用RdoMail.Send()时出现REGDB_E_CLASSNOTREG错误时,它们会遇到异常 我可以看到在草稿文件夹中成功创建了电子邮件。但无法发送并获得该类未注册异常 这是我的示例代码(以下为示例代码): 注意:我试图注册Redemption.dll和Redemption 64.dll,但没有成功 函数fail的名称为

我有一个软件,使用Rdo Redemption类在草稿文件夹中创建电子邮件,然后发送电子邮件

它适用于99%的客户机。但只有少数客户的Outlook中有“谷歌应用同步”。当调用RdoMail.Send()时出现REGDB_E_CLASSNOTREG错误时,它们会遇到异常

我可以看到在草稿文件夹中成功创建了电子邮件。但无法发送并获得该类未注册异常

这是我的示例代码(以下为示例代码):

注意:我试图注册Redemption.dll和Redemption 64.dll,但没有成功

函数fail的名称为RDOMail.Send()(在中定义)

以前有没有人遇到过类似的问题?有没有解决这个问题的方案(它似乎只与使用Google App与MAPI同步的客户端计算机相关)?我如何发现每个未注册的COM类


谢谢

最后,找出我的问题的缺失和解决方案:

当Outlook 2016(Outlook 2013)以“单击运行”模式安装并且设置了“谷歌应用程序同步”时,会出现问题。调用RDOMail.Sned()时,会发生REGDB_E_CLASSNOTREG错误

使用ProcMon后,我们发现缺少以下注册表项:

Windows注册表编辑器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}"
一旦我们放入这些注册表项,RDOMail.Send()将用于MAPI Google App Sync电子邮件帐户


我做了进一步的谷歌搜索,似乎Outlook C2R(点击运行)可能没有正确地放置所有COM注册表

我已将debug版本的Redemption发送到您的私人电子邮件地址。
[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}"