2016-03-30 7 views
0

Gibt es eine einfache/elegante Möglichkeit zu überprüfen, dass eine SMTP-Adresse mit einem Exchange-Postfach über EWS verknüpft ist?
Anmeldeinformationen eines administrativen Exchange-Benutzers werden angegeben.Verifizieren, dass eine SMTP-Adresse einem Postfach zugeordnet ist

Die folgende quick and dirty Lösung funktioniert:
einen Exchange erstellen mit der SMTP-Adresse als imitierter Benutzer
Versuchen Sie, einen Methodenaufruf
Wenn die Ausnahmemeldung lautet „Die SMTP-Adresse keine Mailbox hat, um im Zusammenhang mit . es "ist, wird die SMTP-Adresse nicht mit einem Postfach

Problem verbunden:
nicht, dass elegant die Ausnahmemeldung
dauert etwa 200-250ms pro Benutzer vergleichen (Nicht parallel)

Ein weiteres Problem:
Es ist möglich, dass es Kontakte in der GAL, die keine Mailbox befinden.
So ResolveNames wird nicht hilfreich sein.

Antwort

0

Der einfachste Weg ist es, die ResolveName Betrieb zu verwenden, und suchen Sie das Verzeichnis müssen nur die Adresse mit SMTP- Präfix: and Exchange wird die Suche sowohl die Primär- und proxyaddressses zB

String EmailAddresstoCheck = "[email protected]"; 
NameResolutionCollection ncCol = service.ResolveName(("SMTP:" + EmailAddresstoCheck), ResolveNameSearchLocation.DirectoryOnly, true); 
if (ncCol.Count == 1) 
{ 
    if (ncCol[0].Contact != null) 
    { 
     if (EmailAddresstoCheck.ToLower() == ncCol[0].Mailbox.Address) 
     { 
      Console.WriteLine("Primary SMTP Address of " + ncCol[0].Contact.DisplayName); 
     } 
     else        
     { 
      Console.WriteLine("Proxy Address of " + ncCol[0].Contact.DisplayName); 
      Console.WriteLine("Primary SMTP Address : " + ncCol[0].Mailbox.Address); 
     }      
    }     
} 

Prost Glen

+0

Wenn ich mich richtig erinnere, ist es möglich, dass es Mail-Adressen in der GAL gibt, die keine Mailbox haben. Wenn die Adresse gegen die GAL aufgelöst wird, kann dies zu falschen positiven Ergebnissen führen. – Ra1ningSn0w

+0

Sie sollten in der Lage sein, den Rückgabetyp der Adresse zu überprüfen, die für einen Kontakt unterschiedlich sein sollte (z. B. oneoff) oder ein AutoErmittlungs-Check-in hinzufügen. Am besten testen Sie es selbst. –

+0

Das Problem ist, dass es keinen Unterschied gibt die Ergebnisse. Ein Kontakt verfügt sogar über die MailboxType-Mailbox, wenn sie keinem Postfach zugeordnet ist. – Ra1ningSn0w