System.Runtime.InteropServices.COMException: "Error in IMAPIFormMgr.LoadForm: MAPI_E_NOT_FOUND"

System.Runtime.InteropServices.COMException: "Error in IMAPIFormMgr.LoadForm: MAPI_E_NOT_FOUND"

我正在使用 Redemption 为 Outlook 开发插件应用程序。我正在尝试获取地址列表以作为地址添加到电子邮件中,然后显示电子邮件。

session = new RDOSession();
session.Logon();
var contacts = session.GetDefaultFolder
     (rdoDefaultFolders.olFolderContacts);
 var mailItem = contacts.Items.Add("New message");
 AddinModule.CurrentInstance.Session.MAPIOBJECT = mailItem.Session.MAPIOBJECT;
 mailItem.Attachments.Add(file, OlAttachmentType.olByValue, Type.Missing, Type.Missing);
 RDOFolder folder = session.GetDefaultFolder(rdoDefaultFolders.olFolderContacts);

 foreach (RDOFolder subFolder in folder.Folders)
 {
     if (subFolder.Name == "CAS_Notifications")
     {
         foreach (var rdoItem in subFolder.Items)
         {
             RDOContactItem contactItem = rdoItem as RDOContactItem;
             RDODistListItem distList = rdoItem as RDODistListItem;
             if (distList != null)
             {
                 foreach (RDOAddressEntry rdoAddressEntry in distList.OneOffMembers)
                 {
                     mailItem.Recipients.Add(rdoAddressEntry.SMTPAddress);
                 }
             }
             else if (contactItem != null)
             {
                 mailItem.Recipients.Add(contactItem.Email1Address);
             }
         }
     }
 }
 mailItem.Display();

抛出异常

System.Runtime.InteropServices.COMException: "Error in IMAPIFormMgr.LoadForm: MAPI_E_NOT_FOUND"

如何调试?

下一行是问题所在:

var mailItem = contacts.Items.Add("New message");

Add 接受消息 class(例如 "IPM.Note"olItemType / rdoItemType 枚举之一(例如 olMailItem = 0).

您收到的错误基本上告诉您 MAPI 找不到指定消息的表单 class ("New message")。