Home .NET Créer un plugin Outlook 2010

Créer un plugin Outlook 2010

  Maxime B. 5 min 10 décembre 2012

Introduction

Dans le cadre de l’extension d’une application de partage de fichiers pour l’un de nos clients, celui-ci voulait utiliser son service de partage au travers d’Outlook 2010.

Concrètement, lors de l’envoi d’un email avec une pièce jointe si celle-ci dépasse une certaine taille alors elle sera envoyée à  travers de partage l’application (grâce à un Web Service précédemment créer)  plutôt que par email.

Nous allons découvrir dans cet article comment surcharger l’envoi d’un email sur Outlook 2010 pour faire des actions personnalisées et comment créer un fichier d’installation.

Ce dont nous avons besoin

  • Visual Studio 2010
  • Office 2010

Implémentation

  1. 1.    Création de la solution

Lancer Visual Studio 2010 et créer un projet de type « Complément Outlook 2010 » :

 

  1. 2.     Composition de la solution

Une fois la solution créée, nous retrouvons les éléments suivants dans l’explorateur de solutions :

 

Le fichier qui va nous intéresser est « ThisAddIn.cs ».

Celui-ci va contenir le code dont nous avons pour intercepter et modifier l’envoi d’un email.

A la création, nous pouvons voir 2 méthodes :

  • ThisAddIn_Startup
  • ThisAddIn_Shutdown

 

La méthode ThisAddIn_Startup est appelée au lancement d’Outlook, elle correspond au chargement de notre AddIn.

La méthode ThisAddIn_Shutdown est appelée à la fermeture d’Outlook, elle correspond au déchargement de notre AddIn.

 

  1. 3.    Préparation du code

Ajout des références :

using Microsoft.Office.Interop.Outlook;

 

Ajout des variables et constantes :

public Application OutlookApplication;

public Inspectors OutlookInspectors;

public Inspector OutlookInspector;

public MailItem OutlookMailItem;

 

Modifier la méthode ThisAddIn_Startup afin d’initialiser nos variables et s’abonner aux différents événements  et ajouter le code suivant :

private void ThisAddIn_Startup(object sender, System.EventArgs e)

{

       // Instanciation de l’application

OutlookApplication = Application as Application;

// Récupération des « inspectors »

OutlookInspectors = OutlookApplication.Inspectors;

// Abonnement à l’événement d’inspection

OutlookInspectors.NewInspector += new Microsoft.Office.Interop.Outlook.InspectorsEvents_NewInspectorEventHandler(OutlookInspectors_NewInspector);

// Abonnement à l’événement d’envoi d’email

OutlookApplication.ItemSend += new Microsoft.Office.Interop.Outlook.ApplicationEvents_11_ItemSendEventHandler(OutlookApplication_ItemSend);

}

 

Créer ensuite les 2 événements suivants :

void OutlookInspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector Inspector)

{

}

void OutlookApplication_ItemSend(object Item, ref bool Cancel)

{

}

Le 1er événement se charge d’inspecter les différentes actions faites par l’utilisateur.

Le 2nd  nous permet d’intercepter l’envoi d’un email (bouton “Envoyer”) et de faire des actions spécifiques.

 

  1. 4.    Interception et modification de l’email

Pour intercepter notre email, nous allons utiliser l’événement « OutlookInspectors_NewInspector » vu dans le paragraphe précédent, vérifier que l’on manipule un objet de type « MailItem » et l’affecter dans notre variable « OutlookMailItem ».  Cette variable nous permettra de manipuler l’email lors de l’envoi.

Pour cela, ajouter le code suivant dans l’événement :

void OutlookInspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector Inspector)

{

// Récupération de "l'inspector"

OutlookInspector = (Inspector)Inspector;

// Test sur le type, ici "MailItem" nous intéresse

if (Inspector.CurrentItem is MailItem)

{

     // Récupération de l'objet dans la variable "OutlookMailItem"

     OutlookMailItem = (MailItem)Inspector.CurrentItem;

}

}

 

Nous allons maintenant modifier l’événement « OutlookApplication_ItemSend » et afficher le contenu de celui-ci dans une boite de dialogue.

void OutlookApplication_ItemSend(object Item, ref bool Cancel)

{

try

       {

            System.Windows.Forms.MessageBox.Show("Contenu de l'email : " + OutlookMailItem.Body);

       }

       catch (System.Exception ex)

       {

            System.Windows.Forms.MessageBox.Show(ex.Message);

    // On annule l’envoi

            Cancel = true;

       }

}

 

Voici le résultat obtenu :

Nous allons maintenant modifier le contenu de l’email envoyé :

void OutlookApplication_ItemSend(object Item, ref bool Cancel)

{

try

       {

           // Modification du contenu de l'email

           string sBody = "---\r\n";

           sBody += "Ce mail a été modifié automatiquement !";

           // Ajout de notre texte à la suite du mail.

           OutlookMailItem.Body += sBody;

}

catch (System.Exception ex)

{

            System.Windows.Forms.MessageBox.Show(ex.Message);

    // On annule l’envoi

            Cancel = true;

}

}

 

Le mail reçu a bien été modifié :

 

  1. 5.    Création d’un fichier d’installation

Créer sous Visual Studio un nouveau projet de type « Projet d’installation ».

 

Dans l’explorateur de solutions, faire un clic droit sur le nouveau projet, puis ajouter « sortie de projet ».

 

Sélectionnez « Sortie principale ».

 

Après l’ajout, dans la liste des dépendances détectées, exclure les dépendances suivantes :

  • Microsoft.Office.Tools.Common.dll
  • Microsoft.Office.Tools.dll
  • Microsoft.Office.Tools.Outlook.dll
  • Microsoft.Office.Tools.v4.0.Framework.dll
  • Microsoft.VisualStudio.Tools.Applications.Runtime.dll
  • Stdole.dll

Vos dépendances devraient ressembler à ça :

 

Se rendre dans l’éditeur du système de fichier et ajouter les 2 fichiers suivants depuis le répertoire « bin\release » du projet :

  • MonAddinOutlook.dll.manifest
  • MonAddinOutlook.vsto

 

Se rendre dans l’éditeur de registre et ajouter les clés pour avoir la même arborescence et la configuration suivante :

 

Modifier ensuite les différentes options du Setup afin de renseigner les informations sur le nom de l’application, le créateur, les options de mise à jour, …

Compiler l’installateur et lancer l’installation.

Pour vérifier que votre AddIn est bien installé, lancer le gestionnaire de compléments COM et vérifier qu’il figure bien dans la liste.

 

  1. 6.    Pour aller plus loin…

Il est bien sûr possible d’aller encore plus loin en imaginant toute sorte « d’application » ou contrôles par rapport à l’email (par exemple l’ajout ou la suppression de pièces jointes, ajout de destinataire, …).

N’hésitez pas à consulter l’aide MSDN sur les fonctionnalités d’Outlook : http://msdn.microsoft.com/en-us/library/bb610835(v=office.14).aspx

 

Lire les articles similaires

1 commentaire

Gweltaz 29 octobre 2018 - 12:27 |

Bonjour, un projet de type « Projet d’installation » (ou « Setup Project ») est encore disponible sous VS 2017 via l’extension « Microsoft Visual Studio 2017 Installer Projects » ( https://marketplace.visualstudio.com/items?itemName=VisualStudioClient.MicrosoftVisualStudio2017InstallerProjects#overview ), à installer soi-même.
Une fois l’extension installée (et Visual Studio relancé), le projet est disponible dans la catégorie « Autres types de projets/Visual Studio Installer/Setup Project ». 🙂
En tout-cas, merci pour le tuto, encore valable 6 ans plus tard !

Répondre

Laisser un commentaire

Social Share Buttons and Icons powered by Ultimatelysocial