0

次のコードを使用して、特定の MailItem の適切な ContactItem (Sender) にデータを割り当てます。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();                
        }

しかし、これは私にとってはうまくいかないようです。次にその MailItem の連絡先を取得すると (次のコードを参照)、null が返されます。また。そしてまた。

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

何か問題がありますか?新しい ContactItem が Sender に割り当てられていないようです。

4

1 に答える 1

1

GetContact は、送信メッセージ (受信では機能しません) に連絡先が受信者として明示的に追加されている場合にのみ、ContactItem オブジェクトを返します。

GetContact は、同じメール アドレスを持つ連絡先アイテムがあるかどうかをチェックしません

一致する連絡先を見つける必要がある場合は、連絡先フォルダーで MAPIFolder.Items.Find を明示的に使用します。

于 2013-09-11T18:33:32.593 に答える