簡體   English   中英

解決Microsoft Outlook中多個郵箱中的聯系人沖突

[英]Resolving contact conflict in more than one Mailbox in Microsoft Outlook

我正在嘗試解決Outlook 2010中的模糊聯系人。我的Outlook配置了兩個不同的郵箱,分別為XXX@domain1.com和XXX@domain2.com。 如果兩個域中都存在特定用戶(例如XXX),則Outlook會從默認通訊簿中解析該名稱。 如何切換到另一個通訊簿(即domain2)並解決? 但是,如果該聯系人在domain1中不存在(即默認),則我的程序可以從domain2中獲取該聯系人。 請為我建議一種單獨解決來自特定域的收件人的方法。

我的應用程序在C#中,我使用Microsoft Outlook Library 14.0

如果使用“ 贖回”是一個選項,則可以使用RDOAddressList .ResolveName方法來解析針對特定GAL容器的名稱。 可以從RDOSession.AddressBookRDOExchangeAccount .GAL屬性中檢索RDOAddressList對象。 可以從RDOSession.Accounts集合中檢索RDOExchangeAccount

VB:

  set Session = CreateObject("Redemption.RDOSession")
  Session.MAPIOBJECT = Application.Session.MAPIOBJECT
  set AddressEntry = Session.AddressBook.GAL.ResolveName("dmitry streblechenko")
  MsgBox AddressEntry.SMTPAddress

C#:

  Redemption.RDOSession session = new Redemption.RDOSession();
  session.MAPIOBJECT = Application.Session.MAPIOBJECT; //if you already have a pointer to the Outlook.Application object, Or call Logon
  Redemption.RDOAddressEntry addressEntry = session.AddressBook.GAL.ResolveName("dmitry streblechenko");
  MessageBox.Show(addressEntry.SMTPAddress);

Outlook對象模型不提供任何屬性或方法來根據特定地址簿解析收件人。 收件人類的唯一可能方法是ResolveResolveAll

私人Redemption.RDOAddressEntry ResolveRecipientsRDO(字串名稱){

        Redemption.RDOAddressEntry raddressEntry = null;
        try
        {  
            string displayName = (string)accountDisplayNames[domainSelect.Text];
            Microsoft.Office.Interop.Outlook.Application app = new Outlook.Application();
            Redemption.RDOSession session = new Redemption.RDOSession();
            session.MAPIOBJECT = app.Session.MAPIOBJECT;
            //if you already have a pointer to the Outlook.Application object, Or call Logon
            RDOStores stores = session.Stores;

            RDOAccounts accounts = session.Accounts;



            if (stores.DefaultStore.Name.ToLower().Equals(displayName.ToLower()))
            {
                WriteLog("Default account:" + stores.DefaultStore.Name.ToLower());
                // MessageBox.Show("Outlook's Default account name: " + stores.DefaultStore.Name.ToLower() + " matches with selected domain " + displayName);
                raddressEntry = session.AddressBook.ResolveName(name, true);

            }
            else
            {
                MessageBox.Show("The selected domain " + displayName + " is not Outlook's Default domain. Set this as default domain to resolve", "Default Mailbox Setting");
                accounts.DisplayAccountList();
                WriteLog("Default account:" + stores.DefaultStore.Name.ToLower());
                raddressEntry = session.AddressBook.ResolveName(name, true);

            }
        }
        catch(System.Exception e)
        {
            MessageBox.Show("Resolving error:" + e.GetBaseException());
            WriteLog("*******inside findAndWriteDirectReporteesintoPDF******");
        }


        return raddressEntry;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM