Augmenter votre productivité avec outlook
Des macros et automatismes pour augmenter votre productivité avec Outlook et exchange
Introduction
Cette macro est issue d'un constat que j'imagine pouvoir partager assez facilement : nous recevons trop de mails, ces mails sont (trop) souvent envoyés à tort et à travers dans l'entreprise sans que vous soyez vraiment concernés, ils sont souvent associés de gros fichiers attachés qui ont la fâcheuse habitude de vous saturer votre boîte exchange, bref tout cela devient difficilement gérable.
Il y a quelque temps déjà, j'ai donc décidé d'écrire une ou deux macros dans outlook pour m'aider à gérer tout cela. Au fil du temps, c'est devenu un ensemble de fonctionnalités et de petits outils qui pourront vous aider tous les jours, je l'espère.
Crédits et Remerciements
Ces macros utilisent quelques outils glanés sur internet ou réalisés sur mesure, merci donc à :
- Patrick Bouffel et Olivier de Paulignac (http://www.smartextension.com/) pour les librairies de zip (SmartJustZip.ocx)
- Outlook Redemption : http://www.dimastr.com/redemption/ .Pour cette excellente extension à outlook dont je ne fait qu'effleurer les possibilités mais qui me permet d'éviter les difficultés d'accès aux objets outlook introduites par microsoft à partir d'outlook 2000.
- Olivier Chami (Cham) pour ces récents ajouts et modifications aux différentes macros.
Merci également aux "beta testeurs" qui ont bien voulu risquer leur config outlook depuis le début : Patrick, Sylvain-Pierre, Cham, Benoît, Marc...
Fonctionnalités et pré-requis
Les fonctionnalités actuellement gérées par la macro sont :- Zip automatique des attachs des mails sortants
- Zip automatique des attachs des mails entrants
- Déplacement automatique des mails dont l'utilisateur n'est pas clairement destinataire
- Filtrage automatique des mails dont les attachs sont considérées trop importantes
- Export vers Excel de la taille de la boîte aux lettres, ainsi que de tous ces répertoires
Ces macros fonctionnent tous les jours sur mon PC sous windows XP PRO+Outlook 2003+Exchange
Elle a fonctionné (mais je n'ai pas testé depuis longtemps) sur Windows 2000 et outlook 2000 et 2002.
Pour réaliser l'installation, il faut être administrateur local du poste.
Toutes ces macros manipulent des objets 'mails', mais ne touchent pas aux autres objets d'outlook (rendez-vous, notes..) et par conséquent ne zippent pas les attachs de ces éléments là.
Comment j'ai organisé mon outlook
L'utilisation de ces macros est adaptée à ma façon de m'organiser avec outlook. Ainsi si vous êtes organisé diféremment, il est possible que l'utilisation de ces macros ne soient pas optimale :J'utilise donc outlook au travail, en connexion avec un serveur exchange (exchange, sa version, etc.. ne sont pas déterminants).
J'utilise en priorité (et uniquement) ma boîte de réception exchange.
Je ne stocke pas à long terme mes mails le répertoire principal d'arrivée des mails : seuls les mails non encore lus et à traiter (même s'ils sont lus) sont laissés dans la boîte principale => target 0 mails dans la boîte de réception.
J'utilise les petits drapeux de rappels et la notion lu/non lu dans cette inbox pour gérer les priorités de traitement/lecture.
Dès que j'ai lu et/ou traité un mail, je le déplace dans un des répertoires et sous répertoires de ma boîte de réception exchange : j'utilise des dizaines de répertoires (organisés par thèmes) pour ranger mes mails.
Chacun de ces répertoire dispose d'une règle d'autoarchivage (souvent celle que j'ai définie par défaut) qui archive les vieux mails (traités donc : il n'y a pas de règle d'archivage dans ma inbox) dans des pst.
Quand un .pst devient trop gros (quelques gigas) je le grave et j'en démarre un nouveau.
La macro s'applique donc principalement (en tout cas elle est testée dessus) sur un environnement outlook-exchange avec une utilisation de la boite stockée sur exhange et des .pst uniquement utilisés en archivage (lecture seule pour la consultation / écriture via des règles d'autoarchivage).
Installation et Configuration
- Dézippez l'archive dans un endroit quelconque de votre disque (répertoire temporaire)
- Vous avez normalement les fichiers suivants dans le répertoire bin_v1.97/
- srcMacroOutlook_v1.97.txt
- Redemption.dll
- Install.bat
- SmartJustZip.ocx
- vbzip11.dll
- unzip32.dll
- Lancer Install.bat : l'install va copier les dll et ocx dans votre système et va rendre active les dll
- lorsque vous avez le popup d'install de rédemption, cliquez sur 'I agree' puis Ok
- Ouvrez votre outlook
- Allez dans Outils / Macros / Visual Basic Editor
- Dans le menu projet, à gauche, ouvrez le premier projet, puis 'microsoft Office Outlook Objets', puis double cliquez sur 'ThisOutlookSession'
- Ouvrez le fichier srcMacroOutlook_v1.97.txt avec un éditeur de texte, sélectionnez tout, puis copier
- collez le tout dans l'écran ouvert par 'ThisOutlookSession'
Configuration
La configuration s'effectue en éditant un certain nombre de variables globales situées dans le début du code source de la macro. Ainsi si ce n'est pas encore présent, ouvrez outlook, ouvrez l'éditeur visual basic et double cliquez sur 'ThisOutlookSession'
Descendez dans le code jusqu'à trouver la zone suivante :
'=====================================================================================================================
' == Fonctionnalités (et activations / Désactivations des fonctionnalités)
'=====================================================================================================================
Le premier bloc concerne les fonctionnalités que vous souhaitez activer ou désactiver. Par défaut, toutes les fonctionnalités qui fonctionnent sont activées (la fonctionnalité 6 ne fonctionne pas et donc est inutile).
ex : Pour autoriser le zip automatique des attachs des mails entrants, placez à 1 la variable mi_FUNC01, pour le désactiver, placez la variable à 0
Faites de même avec les autres fonctionnalités : la correspondance des fonctionnalité est dans le source, mais en voici un tableau récapitulatif :
| N° Fonction | Fonctionnalité |
| mi_FUNC01 | Zip auto mails entrants |
| mi_FUNC02 | Zip auto mails sortants |
| mi_FUNC03 | Déplace mails non destinataire |
| mi_FUNC04 | Gestion des Quotas |
| mi_FUNC05 | Rattapage auto dans la inbox des mails non traités par la macro |
| mi_FUNC06 | <NON FONCTIONNEL> |
| mi_FUNC07 | refuse les mails entrants trop volumineux |
Les paramètres suivants sont situés juste en dessous dans la zone 'Constantes / paramètres' :
- ml_GROSMAIL : détermine la taille totale (en octets) d'un mail a partir de laquelle la macro va zipper les fichiers attachés. (utilisé pour les fonctions 01 et 02)
- ml_TROPGROSMAIL : détermine la taille totale (en octets) d'un mail au delà de laquelle un mail sera refusé par la fonction 07
- ms_MONNOM : inscrivez ici votre nom (en majuscules) tel qu'il apparait lorsque vous êtes destinataire d'un mail. La fonction 03 va utiliser cette valeur et va dérouter tous les mails entrants où ce nom n'apparaît pas dans le champ des destinataires (vous pouvez entrer seulement une partie du nom, mais le filtrage risque d'être moins précis)
- ms_REPERTOIRETEMPIN et ms_REPERTOIRETEMPIN : ce sont les répertoires temporaires qui sont utilisés lors du zip des attachs du mail : les fichiers en cours de zip transitent par ces répertoires. Attention : une fois les répertoires déterminés, vous devrez les créer sur votre disque : la macro ne les crée pas automatiquement.
- ms_NONDEST_DIRECTORY_PARENT et ms_NONDEST_DIRECTORY_SON : correspond à l'arborescence qui permet d'arriver au répertoire dans lequel les mails 'non destinataires' de la fonction 03 seront déplacés. Actuellement, dans la version 1.97, l'arborescence est obligatoirement à deux niveaux. Par défaut, les mails seront donc déplacés dans : Boite de Réception/Interne/CC. Attention : vous devez également créer ces répertoires dans votre arborescence outlook pour que cela fonctionne.
- ms_NOMREPERTOIRE_QUOTACOUNT : nom du répertoire (situé directement sous la Boîte de réception) où seront stockées les informations de comptages des mails reçus (utilisé par la fonction 04 de gestion des quotas. Attention, vous devrez également créer ce répertoire dans votre Boîte de réception outlook.
- mi_QUOTA : détermine le seul du quota (nombre de mails reçus dans la boite de réception, post filtrage et déplacements, notamment ceux de la fonction 03. Au delà du seuil, les mails seront automatiquement classés en importance faible.
- mi_DONOTZIPEXT : liste des extensions de fichiers qu'il n'est pas nécessaire de zipper (attention à laisser le ; en début et fin de liste)
Fin de l'installation
- Une fois la config terminée, fermez la fenêtre Visual Basic editor et fermez outlook
- Répondez 'oui' à la question sur l'enregistrement des modifications de ThisOutlookSession
- Redémarrez outlook
Niveau de sécurité des macros et signature de la macro
Depuis outlook 2002, microsoft est plus 'difficile' dans sa gestion de la sécurité et particulièrement autours des macros. Si vous utilisez un outlook 2002 ou supérieur, vous allez certainement avoir un message d'avertissement qui vous demande d'exécuter ou non la macro. Ou pire, certains niveaux de sécurités interdisent complètement l'exécution des macros.Si vous le sentez bien, vous pouvez soit :
- baisser le niveaux de sécurité d'outlook pour autoriser le lancement de cette macro
- laisser le niveau de sécurité comme il est, mais signer le code : cela permet en gros de dire à outlook que ce code est un code de confiance et qu'il peut l'exécuter. Pour signer le code, il faut suivre une procédure qui est décrite ici par microsoft.
Détail et revue des fonctions
Zipper les fichiers attachés
Le principe est le suivant :- pour chaque mail (entrant ou sortant), la macro regarde si la taille totale du mail dépasse le seuil qui nous autorise à zipper.
- Si c'est le cas, alors on regarde chaque fichier attaché : si l'extension n'est pas une extension d'un fichier déjà compressé, alors on le zippe (ceci quelque soit la taille du fichier concerné).
- ex1 : un mail de 100ko avec deux fichiers attachés : un fichier texte de 40ko et un fichier Excel de 60ko : les deux fichiers seront zippés
- ex2 : un mail de 560ko avec deux fichiers attachés : un fichier texte de 1ko et une image jpg de 559ko : le fichier txt sera zippé et le jpg ignoré (car déjà compressé)
- Les attachs maintenant zippées, la taille totale de votre mail sera considérablement réduite.
Déplacement des mails non destinataire
Il est nécessaire de détailler ce que j'appelle "non destinataire" et pourquoi je n'ai pas utilisé les règles standard de routage d'outlook qui permettent de déplacer les mails 'où je suis en copie' :La grosse différence est précisément que la règle outlook route les mails où je suis explicitement en copie, alors que la macro destinataire 'rejette' tous les mails ou le nom recherché n'est pas explicitement dans les destinataires.
Par exemple, si je m'appelle Dupont : un mail envoyé à une liste 'Tous les interlocuteurs' ne sera pas traitée par la règle outlook mais sera déplacée par la fonction 'non destinataire', car le mot 'Dupont' n'est pas présent dans le champ destinataire.
Attention toutefois, même si c'est une fonction que j'ai voulu et que j'ai choisi de mettre en place, elle peut vous faire rater un certain nombre de mails importants si vous ne vérifiez pas votre répertoire de copie et si vous êtes régulièrement dans des listes ou des alias.
Gestion des Quotas
Le principe est, une fois tous les filtrages et déplacement réalisés, de compter les mails que l'on reçoit chaque jour dans la boîte de réception et de réaliser une action une fois un 'nombre raisonnable de mails à traiter par jour' est dépassé.Au départ, je souhaitais rejeter tout mail au delà du quota (en le renvoyant à l'expéditeur par exemple, avec un message particulier expliquant le principe), mais je n'ai pas osé pousser le modèle : le monde de l'entreprise n'est pas encore prêt... (imaginez que le 1er mail au delà de votre quota est un mail de votre directeur général et qu'il est seulement 14h : votre mail automatique de rejet sera-t-il bien reçu et compris ? Je n'en suis pas certain ; il faut au moins une politique des mails un peu évoluée dans votre entreprise pour y arriver...et peut être une gestion de quota plus 'fine' (white-lists, black-list, détermination auto des 'collègues spammeurs'...)
En attendant, j'ai opté pour une solution 'passive' : tout mail qui dépasse le quota devient un mail de faible importance, cela permet de roder la solution.
Regardez un coup de temps en temps votre répertoire de comptage, cela vous permettra d'avoir une idée de la quantité de mails que vous recevez, vous serez surpris je pense.
Rattrapage des mails non traités (fonction 05)
Le principe de cette fonction n'est pas clair à comprendre en lisant le titre...j'en ai conscience, mais je n'ai pas trouvé de titre clair.Le sujet est assez simple finalement : toutes ces macros sont résolument des programmes qui s'exécutent du côté client (dans votre outlook), donc si vous fermez outlook, recevez des mails pendant qu'outlook est fermé et que vous réouvrez outlook, alors vous allez avoir un tas de mails dont les attachs ne sont pas zippées, dont les envois en copie ne sont pas déplacés, etc...
Cette fonction sert à rattraper le retard : au prochain mail que vous recevrez, il sera traité normalement par la macro, puis la fonction de rattrapage s'enclenchera et scannera toute la inbox à le recherche de mails qui n'ont pas été traités et va les traiter.
Vous pouvez également lancer manuellement ce traitement à tout moment en exécutant directement la macro 'ScanneInbox' : dans outlook / Outils / Macro / Macros : choisissez 'scanneInbox' puis exécuter.
Refuser les mails trop volumineux
Contrairement à la gestion des quotas où je ne suis pas allé au bout de la démarche, j'ai voulu forcer un changement de comportement déviant dans l'utilisation des mails qui consiste à mettre n'importe quoi en attach sans vérifier, et de balancer les mails à 150 personnes en destinataires et 300 en copie...Cette fonction va donc décider qu'un mail est définitivement trop gros et va purement et simplement le supprimer, l'annihiler définitivement. Un mail sera envoyé au destinataire pour lui suggérer de chercher une autre solution plus efficace qu'un mail pour partager ses données.
Bien sûr avant de rejeter on aura déjà zippé les attachs pour essayer de réduire la taille.
Le texte de réponse est pour l'instant directement dans le code de la fonction et dit ceci (en cas de mail avec des attachs) :
Objet : Message dépassant la taille maximale
Texte :
[Ceci est un message généré automatiquement]
Votre message : [objet du message] n'a pas été délivré au destinataire.
Même après avoir compressé les fichiers attachés, ce mail a encore une taille de : xxx ko
Le destinataire n'a pas été informé de ce message.
Le Message n'a pas été délivré ; il a été supprimé directement.
Avant de réémettre ce message, merci de vérifier la taille et la pertinence des fichiers attachés.
Si le ou les fichiers que vous voulez faire parvenir au destinataire sont toujours trop gros, envisagez l'utilisation des répertoires partagés !
[Paramétrage actuel de la taille maximale autorisée : yyyy ko
Export de la taille des boîtes au lettres
Encore une fois, j'ai préféré créer une petite macro plutôt qu'utiliser la fonction classique d'outlook pour connaitre la taille des répertoires de ma inbox. En effet, la fonction de base est certes très rapide, mais elle ne permet aucune interactivité : il n'y pas moyen par exemple de trier par ordre décroissant de taille des répertoires ou de taille de la somme des sous-répertoires.L'export Excell permet de faire toutes les analyses et les tris que l'on souhaite et c'est pratique de temps en temps pour déterminer ce qui réellement prends trop de place dans notre Boîte de réception.
Pour utiliser cette macro, vous devez la déclencher manuellement : menu outils / Macro / Macros. Choisissez 'MailBoxSize' et executez. Choississez ensuite le répertoire racine de ce que vous souhaitez calculer et attendez (la fonction n'est pas très rapide pour l'instant). Excel s'ouvrira automatiquement.
Notes pour les développeurs
Je ne vais pas rentrer ici dans un détail poussé de chaque fonction, mais expliquer les quelques 'trucs' que j'ai utilisé pour faire marcher ces macrosLe champ 'kilométrage'
J'ai piqué l'idée quelque part sur le net et je l'ai détournée pour servir mon utilisation.A la base, je ne sais pas trop a quoi sert le kilométrage dans un objet 'mail', en tout cas je ne l'ai jamais vu rempli a part via ces macros. C'est un champ texte complètement utilisable.
Je m'en sert donc pour stocker dans chaque mail le passage à travers les différentes fonctions. Pour cela j'utilise une chaîne de caractère ou chaque caractère est un 'bit' (0 ou 1) indiquant si on est passée par la fonction xx ou non.
xx est la position du bit dans la chaîne.
Cela permet d'eviter de rezipper des attachs déjà zippée, de revérifier si on est destinataire ou non, etc..
C'est donc avant tout un système pour améliorer les performances.
Affichez le kilométrage dans les champs de votre inbox, c'est pratique pour savoir si vous avez des mails non traités ou non.
Commentaires, bugs et amélioration
N'hésitez pas à me laisser un maximum d'input dans les commentaires ci-dessous sur les pb rencontrés, sur des suggestions d'amélioration ou sur des améliorations que vous avez réalisé.Télécharger l'archive
Filename Filesize Date . outlook_Macros_v1.97.zip 743.05 kB 2008-08-11
Ecrivez un commentaire
- Les champs obligatoires sont marques d'une *.
PATHUCH
Posts: 3
Posts: 3
Reply #8 on : Mon July 16, 2007, 14:29:57
Thomas
Posts: 4
Posts: 4
Reply #7 on : Wed May 02, 2007, 10:14:38
Thomas
Posts: 4
Posts: 4
Reply #6 on : Wed May 02, 2007, 10:12:41
Richard
Posts: 3
Posts: 3
Reply #5 on : Sun April 08, 2007, 11:09:56
Lionel
Posts: 3
Posts: 3
Reply #4 on : Thu March 22, 2007, 05:53:18
Thomas
Posts: 4
Posts: 4
Reply #3 on : Sat December 30, 2006, 02:03:35
Last Edit: December 30, 2006, 02:06:07 by Thomas
admin
Posts: 2
Posts: 2
Reply #2 on : Sat December 30, 2006, 02:03:01
admin
Posts: 2
Posts: 2
Reply #1 on : Sat December 30, 2006, 02:02:27
Last Edit: January 03, 2007, 00:38:43 by admin
![[-]](assets/templates/perso/images/fleche_haut.gif)
![[+]](assets/templates/perso/images/fleche_bas.gif)
![[RSS]](assets/templates/perso/images/rss.gif)
![[RSS]](assets/templates/perso/images/rss_small.gif)
Posts: 4
Reply #9 on : Mon July 16, 2007, 23:41:30