Zum Hauptinhalt springen
Version: Classic

Microsoft Exchange

Dieser Adressprovider ermöglicht es auf Kontakte in Microsoft Exchange über die EWS-Schnittstelle zuzugreifen. Hierfür wird ein "Service Account" aus Ihrem Active Directory benötigt.

Konfiguration​

Online:

Um auf Exchange Online zuzugreifen, ist die Authentifizierung über OAuth nötig. Hierfür benötigt es eine "App Registration" im Azure Active Directory. Führen Sie folgende Schritte aus:

  • Melden Sie sich über das Azure Portal an
  • Wählen Sie Ihr Azure Active Directory aus & kopieren Sie die TenantId
  • Unter "App registrations" legen Sie eine neue mit beliebigen Namen an
  • In der "App" unter "Authentication" aktivieren Sie die Option "Treat application as a public client"
  • Ebenfalls unter "Authentication" fügen Sie urn:ietf:wg:oauth:2.0:oob als "Redirect URI" hinzu
  • Unter "Manifest" fügen Sie den folgenden Eintrag unter requiredResourceAccess innerhalb der eckigen Klammern ein:
{
"resourceAppId": "00000002-0000-0ff1-ce00-000000000000",
"resourceAccess": [
{
"id": "3b5f3d61-589b-4a3c-a359-5dd4b5ee5bd5",
"type": "Scope"
}
]
}
  • Unter "Overview" kopieren Sie die ClientId
  • Unter “API permissions” geben Sie den “Admin Consent” für Ihren Tenant
  • Beachten Sie, dass Sie einen Benutzer ohne 2 Faktoren-Authentifizierung benötigen

Diese Configuration können Sie auch in der Microsoft Dokumentation nachlesen.

Nach Abschluss der Registrierung hinterlegen Sie die ClientId als AppClientId und die TenantId als TenantId.

<!-- AddressService -->
<AddressProvider id="E10A8313-A92D-4CB2-A12B-9AEB58F39207" order="1" active="true">
<!-- serverside Microsoft Exchange address provider -->
<AddressProvider id="24425bd4-d6f1-4e2c-a323-3cc63fb5f07b">
<Debug>false</Debug>
<Title>Exchange Online</Title>
<EWSUrl>https://outlook.office365.com/EWS/Exchange.asmx</EWSUrl>
<AppClientId>{AppClientId}</AppClientId>
<TenantId>{TenantId}</TenantId>
<UserName>{username}</UserName>
<Password>{password}</Password>
<!-- Optional Mapping -->
<Mapping>
</Mapping>
</AddressProvider>
</AddressProvider>

OnPrem:

<!-- AddressService -->
<AddressProvider id="E10A8313-A92D-4CB2-A12B-9AEB58F39207" order="1" active="true">
<!-- serverside Microsoft Exchange address provider -->
<AddressProvider id="24425bd4-d6f1-4e2c-a323-3cc63fb5f07b">
<Debug>false</Debug>
<Title>Exchange OnPrem</Title>
<EWSUrl>{HOST}/EWS/Exchange.asmx</EWSUrl>
<UserName>{username}</UserName>
<Password>{password}</Password>
<IgnoreSslErrors>false</IgnoreSslErrors>
<!-- Optional Mapping -->
<Mapping>
</Mapping>
</AddressProvider>
</AddressProvider>

Empfohlenes Mapping:

Folgendes Mapping wird empfohlen, kann jedoch beliebig angepasst werden.

<!-- AddressService -->
<AddressProvider id="E10A8313-A92D-4CB2-A12B-9AEB58F39207" order="1" active="true">
<!-- serverside Microsoft Exchange address provider -->
<AddressProvider id="24425bd4-d6f1-4e2c-a323-3cc63fb5f07b">
<!-- other settings for OnPrem or Cloud -->
<Mapping>
<Map Source="GivenName" Target="Person_FirstName" />
<Map Source="Surname" Target="Person_LastName" />
<Map Source="JobTitle" Target="Person_Position" />
<Map Source="Profession" Target="Person_Profession" />
<Map Source="MiddleName" Target="Person_SecondName" />

<Map Source="CompanyName" Target="Company_Name" />
<Map Source="Department" Target="Company_Department" />
<Map Source="Contact.Address.Street" Target="Company_Street" />
<Map Source="Contact.Address.City" Target="Company_City" />
<Map Source="Contact.Address.PostalCode" Target="Company_ZipCode" />

<Map Source="Contact.Phone.Business" Target="Company_PhoneDirect" />
<Map Source="Contact.Phone.CompanyMainPhone" Target="Company_PhoneCentral" />
<Map Source="Contact.Fax.Business" Target="Company_FaxDirect" />
<Map Source="Contact.Phone.Mobile" Target="Company_Mobile" />

<Map Source="Mailbox.Address" Target="Company_EmailDirect" />

<Map Target="Company_CountryShortCode">
<Map.SourceExpression>
function main() {
switch(source('Contact.Address.CountryOrRegion')) {
case 'Albania': return 'AL';
case 'Andorra': return 'AD';
case 'Azerbaijan': return 'AZ';
case 'Azerbaidzhan': return 'AZ';
case 'Belgium': return 'BE';
case 'Bosnia and Herzegovina': return 'BA';
case 'Bulgaria': return 'BG';
case 'Denmark': return 'DK';
case 'Germany': return 'DE';
case 'Estland': return 'EE';
case 'Finland': return 'FI';
case 'France': return 'FR';
case 'Georgia': return 'GE';
case 'Greece': return 'GR';
case 'Ireland': return 'IE';
case 'Iceland': return 'IS';
case 'Italy': return 'IT';
case 'Kazakhstan': return 'KZ';
case 'Kazakstan': return 'KZ';
case 'Kosovo': return 'XK';
case 'Croatia': return 'HR';
case 'Latvia': return 'LV';
case 'Liechtenstein': return 'LI';
case 'Lithuania': return 'LT';
case 'Luxembuorg': return 'LU';
case 'Malta': return 'MT';
case 'Macedonia': return 'MK';
case 'Moldova': return 'MD';
case 'Monaco': return 'MC';
case 'Montenegro': return 'ME';
case 'Netherlands': return 'NL';
case 'Norway': return 'NO';
case 'Austria': return 'AT';
case 'Polen': return 'PL';
case 'Portugal': return 'PT';
case 'Romania': return 'RO';
case 'Russia': return 'RU';
case 'San Marino': return 'SM';
case 'Sweden': return 'SE';
case 'Switzerland': return 'CH';
case 'Serbia': return 'RS';
case 'Slowakia': return 'SK';
case 'Slowenia': return 'SV';
case 'Spain': return 'ES';
case 'Czech Republic': return 'CZ';
case 'Türkey': return 'TR';
case 'Ukraine': return 'UA';
case 'Hungary': return 'HU';
case 'Vatican City': return 'VA';
case 'United Kingdom': return 'GB';
case 'Belarus': return 'BY';
case 'India': return 'IN';
case 'United States': return 'US';
case 'Indonesia': return 'ID';
case 'Thailand': return 'TH';

default: return 'DE';
}

return '';
}
</Map.SourceExpression>
</Map>
</Mapping>
</AddressProvider>
</AddressProvider>

Parameter​

  • id 24425bd4-d6f1-4e2c-a323-3cc63fb5f07b
  • Title Titel des Address Provider. Default: "Exchange"
  • EWSUrl Uri des Exchange-Service-Endpunkts. Für Exchange Online ist dies immer "https://outlook.office365.com/EWS/Exchange.asmx"
  • UserName Der Benutzer, mit welchem sich der Provider bei Exchange anmeldet
  • Password Das Passwort, mit dem sich der Provider bei Exchange anmeldet (kann verschlüsselt sein)
  • AppClientId Die AppClient ID der im AAD konfigurierten EWS-App (Nur Exchange Online)
  • TenantId Die TenantId des AAD (Nur Exchange Online)
  • Debug true falls zusätzliche Informationen geloggt werden sollen. Geloggt werden die vorhandenen Werte welche für das Mapping verwendet werden können.
  • IgnoreSslErrors Ungültige SSL Zertifikate ignorieren oder nicht. Default: false. Nur bei OnPrem Variante teilweise nötig.
  • Mapping Optionales Mapping, um die abgefüllten Informationen zu individualisieren.
    Folgende Daten können über das Standard-Kontakt-Mapping abgegriffen werden:
    • DisplayName
    • GivenName
    • Initials
    • CompanyName
    • EmailAddresses
    • PhysicalAddresses
    • PhoneNumbers
    • ContactSource
    • Department
    • JobTitle
    • Manager
    • Surname
    • AliasBestimmte Werte aus den Dictionaries werden für das Mapping bereits extrahiert und als einfache Werte angeboten:
    • PhysicalAddressDictionary[PhysicalAddressKey.Business]
      • City → Contact.Address.City
      • Street → Contact.Address.Street
      • PostalCode → Contact.Address.PostalCode
      • State → Contact.Addess.State
      • CountryOrRegion → Contact.Address.CountryOrRegion
    • PhoneNumberDictionary
      • PhoneNumberKey.BusinessPhone → Contact.Phone.Business
      • PhoneNumberKey.CompanyMainPhone → Contact.Phone.CompanyMainPhone
      • PhoneNumberKey.Mobile → Contact.Phone.Mobile
      • PhoneNumberKey.BusinessFax → Contact.Fax.Business
    • MailBox
  • Standard Mapping Das Standard-Mapping welches greift, wenn kein Mapping definiert ist, umfasst folgende Eigenschaften (Feldnamen aus Exchange):
    • GivenName
    • Surname
    • JobTitle
    • Profession
    • MiddleName
    • CompanyName
    • Department
    • BusinessPhone
    • CompanyMainPhone
    • BusinessFax
    • MobilePhone
    • PhysicalAddress.Business
      • City
      • PostalCode
      • Street
    • Mailbox.Address (Primary Email)
hinweis

HINWEIS
EWS liefert für eine Adresse nur die Länderbezeichnung, nicht aber den ISO-Code des Landes. Im primedocs Empfängerdialog muss aber der Two-Letter-ISO-Code gesetzt werden. Für das Standardmapping bedeutet dies, dass das Land nicht über den Address Provider gemappt wird, sondern mittels des DefaultCountryCode aus der allgemeinen Empfängerkonfiguration.
Ist es nötig, das Land spezifisch zu setzen, weil innerhalb des (A)AD Adressen aus unterschiedlichen Ländern vorhanden sind, dann muss dies gleich wie beim Generic SQL Address provider erledigt werden.