Freigeben über


Auflösen eines Empfängernamens

Gilt für: Outlook 2013 | Outlook 2016

Wenn eine Nachricht adressiert wird, wird eine Empfängerliste mit Eigenschaften erstellt, die sich auf die einzelnen Empfänger beziehen. Zum Zeitpunkt des Sendens der Nachricht muss eine dieser Eigenschaften der Langzeiteintragsbezeichner des Empfängers sein. Um sicherzustellen, dass jeder Empfänger die eigenschaft PR_ENTRYID (PidTagEntryId) enthält, übergeben Sie die ADRLIST-Struktur , die Ihre Empfängerliste beschreibt, im Inhalt des lpAdrList-Parameters in einem Aufruf von IAddrBook::ResolveName.

ResolveName beginnt mit der Verarbeitung, indem die Einträge in der ADRLIST-Struktur ignoriert werden, die bereits aufgelöst wurden, wie durch das Vorhandensein eines Eintragsbezeichners im SPropValue-Array der entsprechenden ADRENTRY-Struktur angegeben. Als Nächstes weist ResolveName zwei Empfängertypen automatisch einmalige Eintragsbezeichner zu:

  • Empfänger mit einer als Internetadresse formatierten Adresse

  • Empfänger mit einer Wie folgt formatierten Adresse:

    displayname[address type:email address]

Für alle verbleibenden Einträge durchsucht ResolveName das Adressbuch nach einer genauen Übereinstimmung mit dem Anzeigenamen. ResolveName verwendet die eigenschaft PR_AB_SEARCH_PATH (PidTagAbSearchPath), um die Gruppe der zu durchsuchenden Container und die Suchreihenfolge zu bestimmen. MAPI ruft die IABContainer::ResolveNames-Methode jedes Containers auf, um zu versuchen, alle Namen aufzulösen. Da einige Container ResolveNames nicht unterstützen, wendet MAPI eine PR_ANR (PidTagAnr)-Eigenschaftseinschränkung auf die Inhaltstabelle an, wenn der Container MAPI_E_NO_SUPPORT zurückgibt. Alle Adressbuchcontainer sind erforderlich, um die Namensauflösung mit dieser Einschränkung zu unterstützen. Nachdem alle Namen aufgelöst wurden, werden keine weiteren Containeraufrufe mehr ausgeführt. Wenn alle Container aufgerufen wurden, aber mehrdeutige oder nicht aufgelöste Namen verbleiben, zeigt MAPI nach Möglichkeit ein Dialogfeld an, in dem der Benutzer aufgefordert wird, die verbleibenden Namen aufzulösen.

Die PR_ANR-Einschränkung gleicht den Wert der PR_ANR-Eigenschaft mit dem Anzeigenamen in der ADRLIST-Struktur ab. Das Einschränken der Ansicht der Inhaltstabelle eines Containers mit der Einschränkung der PR_ANR Eigenschaft bewirkt, dass der Adressbuchanbieter einen Suchtyp "best guess" durchführt, der mit der Eigenschaft übereinstimmt, die für den Anbieter sinnvoll ist. Beispielsweise kann ein Adressbuchanbieter namen in der Empfängerliste immer mit PR_DISPLAY_NAME (PidTagDisplayName) abgleichen, während ein anderer administrator die Auswahl der Eigenschaft ermöglicht.

So legen Sie eine PR_ANR-Eigenschaftseinschränkung für die Inhaltstabelle eines Adressbuchcontainers fest

  1. Erstellen Sie eine SRestriction-Struktur , wie im folgenden Code gezeigt:
SRestriction SRestrict;
SRestrict.rt = RES_PROPERTY;
SRestrict.res.resProperty.relop = RELOP_EQ;
SRestrict.res.resProperty.ulPropTag = PR_ANR;
SRestrict.res.resProperty.lpProp->ulPropTag = PR_ANR;
SRestrict.res.resProperty.lpProp->Value.LPSZ = lpszName;
 
  1. Rufen Sie die IMAPITable::Restrict-Methode der Inhaltstabelle auf, und übergeben Sie die SRestriction-Struktur als lpRestriction-Parameter .