2017-06-15 3 views
0

J'ai développé un petit programme qui envoie des rapports à nos clients, qui devraient être utilisés par chacun des membres du personnel. Habituellement, l'e-mail doit être envoyé au nom de l'entreprise, mais certains professionnels ne sont pas autorisés à le faire.Mailitem.SentOnBehalfOfName: Vérifier les autorisations dans Exchange

Dans ces cas, l'e-mail doit apparaître comme envoyé par eux.

Si je définis la propriété Mailitem.SentOnBehalfOfNamem et que l'utilisateur n'a pas reçu d'accès, le courrier rebondit. Cependant, je dois vérifier, avant d'envoyer l'e-mail, si l'utilisateur a les permissions.

BTW, le serveur utilise Exchange Server 2008.

Merci à l'avance!

Répondre

0

Vous aurez besoin d'accéder à la liste PR_EMS_AB_PUBLIC_DELEGATES_BL_O de l'utilisateur au nom duquel l'utilisateur donné peut envoyer.

Outlook Object Model n'expose pas cette information. Vous pouvez accéder à PR_EMS_AB_PUBLIC_DELEGATES_BL_O en utilisant MAPI étendu (C++ ou Delphi seulement) - regardez la liste en OutlookSpy: pour l'utilisateur actuel, cliquez sur IMAPISession, QueryIdentity, allez à l'onglet PR_EMS_AB_PUBLIC_DELEGATES_BL_O. Dans le cas de langues autres que C++ ou Delphi, vous pouvez utiliser Redemption et RDOAddressList. IsDelegateFor collection. Un exemple en VBA:

set Session = CreateObject("Redemption.RDOSession") 
    Session.MAPIOBJECT = Application.Session.MAPIOBJECT 
    set AddressEntry = Session.CurrentUser 

    'Debug.Print "-- Delegates (who can send of behalf of " & AddressEntry.Name & ")" 
    for each AE in AddressEntry.Delegates 
    MsgBox AE.Name 
    next 

    'Debug.Print "-- Is delegate for (can send on behalf of these users)" 
    for each AE in AddressEntry.IsDelegateFor 
    MsgBox AE.Name 
    next 
+0

Vous pouvez également utiliser PowerShell: https://msdn.microsoft.com/en-us/library/ff852815(v=exchsrvcs.149).aspx#View%20Send%20As% 20permissions –

+0

Mais la cmdlet PS ne fonctionne que sur la machine sur laquelle Exchange est en cours d'exécution, ou au moins lorsqu'elle est connectée en tant qu'utilisateur de domaine d'administration. pas sur une machine où un utilisateur moyen utilise Outlook pour envoyer un e-mail. –