昨天下载的Windows更新("功能更新到Windows 10,版本1709和#34;)已破坏发送邮件的赎回代码。简化的代码是:
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
还尝试过:
有关下一步尝试的建议吗?
由于
答案 0 :(得分:1)
已知Windows更新会清除一些负责MAPI编组的注册表项。您可以尝试从https://groups.yahoo.com/neo/groups/Outlook-Redemption/conversations/topics/9600安装注册表修复程序或尝试重新安装Outlook。