none
Nombre réel de destinataires RRS feed

  • Question

  • Bonjour,

    Quelle est la meilleure façon (la plus rapide), d'estimer ou de calculer précisément le nombre de destinataires d'un email contenant des listes de diffusions Exchanges imbriquées ?

    J'ai essayé en parsant chaque addressEntry de chaque recipient de manière récursive, mais cette méthode est très lente. 30s pour 600 destinataires, ce qui bloque mon plugin.

    J'ai essayé avec la méthode GetExchangeDistributionListMemebers. C'est un peu plus rapide, mais pas tellement.

    Lorsque l'on compose un email et que l'on ajoute des listes de diffusion conséquentes, Outlook estime le nombre de destinataire comme je le souhaite, mais je ne trouve pas cette propriété dans le model objet ni dans les proptags.

    Auriez-vous un solution ?

    Merci

    lundi 28 décembre 2020 16:10

Toutes les réponses

  • Pourquoi pas https://docs.microsoft.com/en-us/office/vba/api/Outlook.DistListItem.MemberCount

    Daniel Pineault, 2010-2019 Microsoft MVP
    Professional Support: http://www.cardaconsultants.com
    MS Access Tips and Code Samples: http://www.devhut.net

    lundi 28 décembre 2020 18:17
  • Pourquoi pas https://docs.microsoft.com/en-us/office/vba/api/Outlook.DistListItem.MemberCount

    Bonjour,

    Est-ce que je me trompe, ou ça ça va marcher si la liste de distribution est enregistrée dans le client de messagerie ?

    Si c'est sur un serveur dédié, celui-ci a en principe une page dédiée à cela, en supposant que l'information ne soit pas réservée au responsable de la liste de distribution.

    Il est assez courant que l''adresse de cette page web figure au bas de chaque message transmis, avec les instructions pour modifier son inscription.


    jeudi 31 décembre 2020 09:37
  • Bonjour,

    Merci pour la réponse, mais cette méthode ne répond pas a mon besoin parce qu'elle donne le nombre de membre mais pas de manière récursive. J'ai des listes de diffusion qui imbriquent d'autres listes de diffusion.

    Par exemple si dans une liste, j'ai 3 destinataires et une liste de diffusion, cela me retourne 4 membres quelque soit le nombre de destinataire dans ma liste.

    lundi 4 janvier 2021 08:16
  • Effectivement, d'après la doc, cette méthode est à utiliser pour les listes enregistrées dans Outlook. L'équivalent pour les listes Exchange serait d'utiliser ExchangeDistributionList.GetMemberOfList mais je rencontre le même problème, la méthode ne calcule pas les membres de manière récursive et il est bien précisé que la méthode est couteuse en performance si la connexion au serveur Echange en lente, ce qui est malheureusement mon cas.
    lundi 4 janvier 2021 08:23
  • Bonjour,

    J'ai l'impression que la solution doit être implémentée en fonction du stockage de la liste de destinataires.

    Si c'est dans le client, ça va aller assez vite, avec un code différent selon le type de client.

    Si c'est sur des serveurs, bien faire attention à ce qui est indiqué en tête ou pied des messages, aussi bien le responsable de la liste a peut-être bien d'autres informations sur la question.

    Le plus souvent ces informations sont affichées dans une page web, auquel cas on peut aller chercher dans le DOM, même si ce n'est pas une méthode très propre car elle ne tiendra pas après un changement de format de la page. Si on se crée une moulinette pour ses propres besoins et qu'on dispose encore des outils de développement lors d'un changement de format de la page, on peut retenir cette solution. Sinon, si on a vraiment une raison d'avoir besoin d'une mise à jour dynamique de l'information, alors il conviendra de demander auprès du serveur si un autre protocole est disponible pour obtenir l'information. Il est alors possible qu'il faille s'adresser à un serveur plus cher.

    Peut-être d'ailleurs faudra-t-il traiter chaque entrée dans la liste pour déterminer si il s'agit d'un destinataire final, ou d'une autre liste de distribution.

    Selon l'utilisation à faire de l'information, il se peut qu'il suffise d'interroger de temps à autre les listings des différentes listes de distribution, et de noter le nombre quelque part. Cela après l'avoir validé, en vérifiant pour chaque entrée si il ne s'agit pas d'une autre liste de distribution.


    • Modifié Gloops lundi 4 janvier 2021 09:04
    lundi 4 janvier 2021 09:02
  • Il faut effectivement déterminer le type de membre afin de pouvoir récupérer les informations. Cela peut être un destinataires tout simple, mais il liste de diffusion Exchange, une liste Outlook...

    La ou cela pêche, est uniquement dans le cas d'une liste Exchange, qui fait, elle en accès serveur.

    Je suis en client lourd (Plugin VSTO C#) donc je ne peux pas accéder au DOM et j'ai besoin de l'information en temps réel, mon plugin est rechargé a chaque mail, donc je ne peux pas facilement stocker d'information sur le nombre de différentes listes de diffusion qui peut être assez conséquent.

    Je penchais plutôt sur une solution me permettant d'obtenir directement la bonne information coté serveur Exchange. Je ne sais pas s'il diffuse une API plus complète que les méthodes coté VSTO auxquelles j'ai accès ou si j'ai loupé dans la doc la bonne manière de le faire.

    jeudi 7 janvier 2021 13:08