Windows 更新 MAPI_E_NO_RECIPIENTS 后兑换发送失败

Redemption sending fails after Windows Update with MAPI_E_NO_RECIPIENTS

昨天 ("Feature update to Windows 10, version 1709") 下载的 Windows 更新破坏了用于发送邮件的兑换代码。简化代码为:

OutlookApp  := GetActiveOleObject(Outlook_Application_Class);
OLNameSpace := OutlookApp.GetNameSpace(MAPI_NAMESPACE);
OLNameSpace.Logon;

myOutlookItem := OutlookApp.CreateItem(olMailItem);
myItem := CreateOLEObject(Redemption_SafeMailItem_Class);
myItem.Item := myOutlookItem;

myRecipient := myItem.Recipients.Add(toRecipient); // <---- 'test@testing.com'
myRecipient.Type := olTo;
myItem.Recipients.ResolveAll;  // <----------- myItem.Recipient count = 0

myItem.Subject := AMessage_Subject;
myItem.Body := AMessage_Body;

myItem.Send;  // <--- ERROR: Error in IMessage.SubmitMessage: MAPI_E_NO_RECIPIENTS

如果我不使用 Redemption,它会正常工作。

如果我将 myItem.Recipients.Add 更改为 myOutlookItem.Recipients.Add,我会得到 MAPI_E_AMBIGUOUS_RECIP

也试过:

对下一步尝试有什么建议吗?

谢谢

Windows 更新已知会清除一些负责 MAPI 编组的注册表项。您可以尝试从 https://groups.yahoo.com/neo/groups/Outlook-Redemption/conversations/topics/9600 安装注册表修复程序或尝试重新安装 Outlook。