Outlook 加载项:创建新的 ContactItem



我使用以下代码将一些数据分配给给定邮件项目的适当联系人(发件人)。如果 Sender.GetContact() 返回 null,我正在尝试创建一个新的 ContactItem。

        Outlook.MailItem myItem = (Outlook.MailItem)this.OutlookItem;            
        Outlook.ContactItem currentContact = myItem.Sender.GetContact();
        if (currentContact != null)
        {
            currentContact.Body = "Example";
            currentContact.Save();
        }
        else
        {
            currentContact = Globals.ThisAddIn.Application.CreateItem(Outlook.OlItemType.olContactItem) as Outlook.ContactItem;
            currentContact.Email1DisplayName = myItem.SenderName;
            currentContact.Email1Address = myItem.SenderEmailAddress;
            currentContact.Email1AddressType = myItem.SenderEmailType;
            currentContact.Body = "Example";
            currentContact.Save();                
        }

但这对我来说似乎并不好。下次我获得该邮件项目的联系人时(请参阅以下代码),它将返回 null。再。再说一遍。

        Outlook.MailItem myItem = (Outlook.MailItem)this.OutlookItem;            
        Outlook.ContactItem currentContact = myItem.Sender.GetContact();

有什么问题吗?似乎新的联系人项目没有分配给发件人。

仅当传出邮件(不适用于传入)将联系人显式添加为收件人时,GetContact 才会返回 ContactItem 对象。

GetContact 不会检查您是否碰巧有具有相同电子邮件地址的联系项目。

如果需要查找匹配的联系人,请在"联系人"文件夹中显式使用 MAPIFolder.Items.Find。

最新更新