Configurer votre complément Outlook pour l’activation basée sur les événements
Sans la fonctionnalité d’activation basée sur les événements, un utilisateur doit lancer explicitement un complément pour effectuer ses tâches. Cette fonctionnalité permet à votre complément d’exécuter des tâches basées sur certains événements, en particulier pour les opérations qui s’appliquent à chaque élément. Vous pouvez également intégrer le volet Office et les commandes de fonction.
À la fin de cette procédure pas à pas, vous disposez d’un complément qui s’exécute chaque fois qu’un nouvel élément est créé et définit l’objet.
Remarque
La prise en charge de cette fonctionnalité a été introduite dans l’ensemble de conditions requises 1.10, avec des événements supplémentaires désormais disponibles dans les ensembles de conditions requises suivants. Pour plus d’informations sur l’ensemble de conditions requises minimales d’un événement et les clients et plateformes qui le prennent en charge, voir Événements pris en charge et Ensembles de conditions requises pris en charge par les serveurs Exchange et les clients Outlook.
L’activation basée sur les événements n’est pas prise en charge dans Outlook sur iOS ou Android.
Importante
L’activation basée sur les événements n’est pas encore prise en charge pour le manifeste Teams pour les compléments Office (préversion). Nous travaillons à fournir ce soutien bientôt.
Événements pris en charge
Le tableau suivant répertorie les événements actuellement disponibles et les clients pris en charge pour chaque événement. Lorsqu’un événement est déclenché, le gestionnaire reçoit un event
objet qui peut inclure des détails spécifiques au type d’événement. La colonne Description inclut un lien vers l’objet associé, le cas échéant.
Nom canoniquede l’événement et nom du manifeste XML | Nom du manifeste Teams | Description | Ensemble de conditions requises minimales et clients pris en charge |
---|---|---|---|
OnNewMessageCompose |
newMessageComposeCreated | Lors de la composition d’un nouveau message (y compris la réponse, la réponse et le transfert), mais pas lors de la modification, par exemple, un brouillon. | 1.10 - Windows1 - Navigateur web - Nouvelle interface utilisateur Mac |
OnNewAppointmentOrganizer |
newAppointmentOrganizerCreated | Lors de la création d’un rendez-vous, mais pas lors de la modification d’un rendez-vous existant. | 1.10 - Windows1 - Navigateur web - Nouvelle interface utilisateur Mac |
OnMessageAttachmentsChanged |
messageAttachmentsChanged | Lors de l’ajout ou de la suppression de pièces jointes lors de la composition d’un message. Objet de données spécifique à l’événement : AttachmentsChangedEventArgs |
1.11 - Windows1 - Navigateur web - Nouvelle interface utilisateur Mac |
OnAppointmentAttachmentsChanged |
appointmentAttachmentsChanged | Lors de l’ajout ou de la suppression de pièces jointes lors de la composition d’un rendez-vous. Objet de données spécifique à l’événement : AttachmentsChangedEventArgs |
1.11 - Windows1 - Navigateur web - Nouvelle interface utilisateur Mac |
OnMessageRecipientsChanged |
messageRecipientsChanged | Lors de l’ajout ou de la suppression de destinataires lors de la composition d’un message. Objet de données spécifique à l’événement : RecipientsChangedEventArgs |
1.11 - Windows1 - Navigateur web - Nouvelle interface utilisateur Mac |
OnAppointmentAttendeesChanged |
appointmentAttendeesChanged | Lors de l’ajout ou de la suppression de participants lors de la composition d’un rendez-vous. Objet de données spécifique à l’événement : RecipientsChangedEventArgs |
1.11 - Windows1 - Navigateur web - Nouvelle interface utilisateur Mac |
OnAppointmentTimeChanged |
appointmentTimeChanged | Lors de la modification de date/heure lors de la composition d’un rendez-vous. Objet de données spécifique à l’événement : AppointmentTimeChangedEventArgs |
1.11 - Windows1 - Navigateur web - Nouvelle interface utilisateur Mac |
OnAppointmentRecurrenceChanged |
appointmentRecurrenceChanged | Lors de l’ajout, de la modification ou de la suppression des détails de périodicité lors de la composition d’un rendez-vous. Si la date/heure est modifiée, l’événement OnAppointmentTimeChanged est également déclenché.Objet de données spécifique à l’événement : RecurrenceChangedEventArgs |
1.11 - Windows1 - Navigateur web - Nouvelle interface utilisateur Mac |
OnInfoBarDismissClicked |
infoBarDismissClicked | Lors de la suppression d’une notification lors de la composition d’un message ou d’un élément de rendez-vous. Seul le complément qui a ajouté la notification sera notifié. Objet de données spécifique à l’événement : InfobarClickedEventArgs |
1.11 - Windows1 - Navigateur web - Nouvelle interface utilisateur Mac |
OnMessageSend |
messageSending | Lors de l’envoi d’un élément de message. Pour plus d’informations, consultez la procédure pas à pas des alertes intelligentes. | 1.12 - Windows1 - Navigateur web - Nouvelle interface utilisateur Mac |
OnAppointmentSend |
appointmentSending | Lors de l’envoi d’un élément de rendez-vous. Pour plus d’informations, consultez la procédure pas à pas des alertes intelligentes. | 1.12 - Windows1 - Navigateur web - Nouvelle interface utilisateur Mac |
OnMessageCompose |
messageComposeOpened | Lors de la composition d’un nouveau message (y compris la réponse, la réponse et le transfert) ou la modification d’un brouillon. | 1.12 - Windows1 - Navigateur web - Nouvelle interface utilisateur Mac |
OnAppointmentOrganizer |
appointmentOrganizerOpened | Lors de la création d’un rendez-vous ou de la modification d’un rendez-vous existant. | 1.12 - Windows1 - Navigateur web - Nouvelle interface utilisateur Mac |
OnMessageFromChanged |
Non disponible | Lors de la modification du compte de messagerie dans le champ De d’un message en cours de composition. Pour plus d’informations, consultez Mettre à jour automatiquement votre signature lors du basculement entre des comptes Exchange (préversion). | Aperçu - Windows1 |
Remarque
1 Les compléments basés sur les événements dans Outlook sur Windows nécessitent au moins Windows 10 version 1903 (build 18362) ou Windows Server 2019 version 1903 pour s’exécuter.
Configuration de votre environnement
Suivez le guide de démarrage rapide Outlook qui crée un projet de complément avec le générateur Yeoman pour les compléments Office.
Configurer le manifeste
Pour configurer le manifeste, sélectionnez l’onglet correspondant au type de manifeste que vous utilisez.
Pour activer l’activation basée sur les événements de votre complément, vous devez configurer l’élément Runtimes et le point d’extension LaunchEvent dans le VersionOverridesV1_1
nœud du manifeste. Pour l’instant, DesktopFormFactor
est le seul facteur de forme pris en charge.
Dans votre éditeur de code, ouvrez le projet de démarrage rapide.
Ouvrez le fichier manifest.xml situé à la racine de votre projet.
Sélectionnez l’intégralité <du nœud VersionOverrides> (y compris les balises d’ouverture et de fermeture) et remplacez-le par le code XML suivant, puis enregistrez vos modifications.
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
<Requirements>
<bt:Sets DefaultMinVersion="1.10">
<bt:Set Name="Mailbox" />
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<!-- Event-based activation happens in a lightweight runtime.-->
<Runtimes>
<!-- HTML file including reference to or inline JavaScript event handlers.
This is used by Outlook on the web and Outlook on the new Mac UI. -->
<Runtime resid="WebViewRuntime.Url">
<!-- JavaScript file containing event handlers. This is used by Outlook on Windows. -->
<Override type="javascript" resid="JSRuntime.Url"/>
</Runtime>
</Runtimes>
<DesktopFormFactor>
<FunctionFile resid="Commands.Url" />
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<OfficeTab id="TabDefault">
<Group id="msgReadGroup">
<Label resid="GroupLabel" />
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="TaskpaneButton.Label" />
<Supertip>
<Title resid="TaskpaneButton.Label" />
<Description resid="TaskpaneButton.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16x16" />
<bt:Image size="32" resid="Icon.32x32" />
<bt:Image size="80" resid="Icon.80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url" />
</Action>
</Control>
<Control xsi:type="Button" id="ActionButton">
<Label resid="ActionButton.Label"/>
<Supertip>
<Title resid="ActionButton.Label"/>
<Description resid="ActionButton.Tooltip"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16x16"/>
<bt:Image size="32" resid="Icon.32x32"/>
<bt:Image size="80" resid="Icon.80x80"/>
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>action</FunctionName>
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
<!-- Can configure other command surface extension points for add-in command support. -->
<!-- Enable launching the add-in on the included events. -->
<ExtensionPoint xsi:type="LaunchEvent">
<LaunchEvents>
<LaunchEvent Type="OnNewMessageCompose" FunctionName="onNewMessageComposeHandler"/>
<LaunchEvent Type="OnNewAppointmentOrganizer" FunctionName="onNewAppointmentComposeHandler"/>
<!-- Other available events -->
<!--
<LaunchEvent Type="OnMessageAttachmentsChanged" FunctionName="onMessageAttachmentsChangedHandler" />
<LaunchEvent Type="OnAppointmentAttachmentsChanged" FunctionName="onAppointmentAttachmentsChangedHandler" />
<LaunchEvent Type="OnMessageRecipientsChanged" FunctionName="onMessageRecipientsChangedHandler" />
<LaunchEvent Type="OnAppointmentAttendeesChanged" FunctionName="onAppointmentAttendeesChangedHandler" />
<LaunchEvent Type="OnAppointmentTimeChanged" FunctionName="onAppointmentTimeChangedHandler" />
<LaunchEvent Type="OnAppointmentRecurrenceChanged" FunctionName="onAppointmentRecurrenceChangedHandler" />
<LaunchEvent Type="OnInfoBarDismissClicked" FunctionName="onInfobarDismissClickedHandler" />
<LaunchEvent Type="OnMessageSend" FunctionName="onMessageSendHandler" SendMode="PromptUser" />
<LaunchEvent Type="OnAppointmentSend" FunctionName="onAppointmentSendHandler" SendMode="PromptUser" />
<LaunchEvent Type="OnMessageCompose" FunctionName="onMessageComposeHandler" />
<LaunchEvent Type="OnAppointmentOrganizer" FunctionName="onAppointmentOrganizerHandler" />
-->
</LaunchEvents>
<!-- Identifies the runtime to be used (also referenced by the Runtime element). -->
<SourceLocation resid="WebViewRuntime.Url"/>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Icon.16x16" DefaultValue="https://localhost:3000/assets/icon-16.png"/>
<bt:Image id="Icon.32x32" DefaultValue="https://localhost:3000/assets/icon-32.png"/>
<bt:Image id="Icon.80x80" DefaultValue="https://localhost:3000/assets/icon-80.png"/>
</bt:Images>
<bt:Urls>
<bt:Url id="Commands.Url" DefaultValue="https://localhost:3000/commands.html" />
<bt:Url id="Taskpane.Url" DefaultValue="https://localhost:3000/taskpane.html" />
<bt:Url id="WebViewRuntime.Url" DefaultValue="https://localhost:3000/commands.html" />
<!-- Entry needed for Outlook on Windows. -->
<bt:Url id="JSRuntime.Url" DefaultValue="https://localhost:3000/launchevent.js" />
</bt:Urls>
<bt:ShortStrings>
<bt:String id="GroupLabel" DefaultValue="Contoso Add-in"/>
<bt:String id="TaskpaneButton.Label" DefaultValue="Show Taskpane"/>
<bt:String id="ActionButton.Label" DefaultValue="Perform an action"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="TaskpaneButton.Tooltip" DefaultValue="Opens a pane displaying all available properties."/>
<bt:String id="ActionButton.Tooltip" DefaultValue="Perform an action when clicked."/>
</bt:LongStrings>
</Resources>
</VersionOverrides>
</VersionOverrides>
Outlook sur Windows utilise un fichier JavaScript, tandis que Outlook sur le web et sur la nouvelle interface utilisateur Mac utilisent un fichier HTML qui peut référencer le même fichier JavaScript. Vous devez fournir des références à ces deux fichiers dans le Resources
nœud du manifeste, car la plateforme Outlook détermine en fin de compte s’il faut utiliser HTML ou JavaScript en fonction du client Outlook. Par conséquent, pour configurer la gestion des événements, indiquez l’emplacement du code HTML dans l’élément <Runtime> , puis, dans son Override
élément enfant, indiquez l’emplacement du fichier JavaScript inclus ou référencé par le code HTML.
Conseil
- Pour en savoir plus sur les runtimes dans les compléments, voir Runtimes dans les compléments Office.
- Pour en savoir plus sur les manifestes pour les compléments Outlook, voir Manifestes de complément Outlook.
Implémenter la gestion des événements
Vous devez implémenter la gestion des événements sélectionnés.
Dans ce scénario, vous allez ajouter la gestion de la composition de nouveaux éléments.
À partir du même projet de démarrage rapide, créez un dossier nommé launchevent sous le répertoire ./src .
Dans le dossier ./src/launchevent , créez un fichier nommé launchevent.js.
Ouvrez le fichier ./src/launchevent/launchevent.js dans votre éditeur de code et ajoutez le code JavaScript suivant.
/* * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. * See LICENSE in the project root for license information. */ function onNewMessageComposeHandler(event) { setSubject(event); } function onNewAppointmentComposeHandler(event) { setSubject(event); } function setSubject(event) { Office.context.mailbox.item.subject.setAsync( "Set by an event-based add-in!", { "asyncContext": event }, function (asyncResult) { // Handle success or error. if (asyncResult.status !== Office.AsyncResultStatus.Succeeded) { console.error("Failed to set subject: " + JSON.stringify(asyncResult.error)); } // Call event.completed() after all work is done. asyncResult.asyncContext.completed(); }); } // IMPORTANT: To ensure your add-in is supported in the Outlook client on Windows, remember to map the event handler name specified in the manifest's LaunchEvent element to its JavaScript counterpart. // 1st parameter: FunctionName of LaunchEvent in the manifest; 2nd parameter: Its implementation in this .js file. if (Office.context.platform === Office.PlatformType.PC || Office.context.platform == null) { Office.actions.associate("onNewMessageComposeHandler", onNewMessageComposeHandler); Office.actions.associate("onNewAppointmentComposeHandler", onNewAppointmentComposeHandler); }
Enregistrez vos modifications.
Importante
Windows : À l’heure actuelle, les importations ne sont pas prises en charge dans le fichier JavaScript dans lequel vous implémentez la gestion de l’activation basée sur les événements.
Conseil
Les compléments basés sur les événements exécutés dans Outlook sur Windows n’exécutent pas de code inclus dans les Office.onReady()
fonctions et Office.initialize
. Nous vous recommandons d’ajouter votre logique de démarrage de complément, par exemple vérifier la version d’Outlook de l’utilisateur, à vos gestionnaires d’événements à la place.
Mettre à jour le fichier HTML des commandes
Dans le dossier ./src/commands , ouvrez commands.html.
Juste avant la balise head fermante (
</head>
), ajoutez une entrée de script pour inclure le code JavaScript de gestion des événements.<script type="text/javascript" src="../launchevent/launchevent.js"></script>
Enregistrez vos modifications.
Mettre à jour les paramètres de configuration webapck
Ouvrez le fichier webpack.config.js qui se trouve dans le répertoire racine du projet et effectuez les étapes suivantes.
Recherchez le
plugins
tableau dans l’objetconfig
et ajoutez ce nouvel objet au début du tableau.new CopyWebpackPlugin({ patterns: [ { from: "./src/launchevent/launchevent.js", to: "launchevent.js", }, ], }),
Enregistrez vos modifications.
Essayez
Exécutez les commandes suivantes dans le répertoire racine de votre projet. Lorsque vous exécutez
npm start
, le serveur web local démarre (s’il n’est pas déjà en cours d’exécution) et votre complément est chargé de manière indépendante.npm run build
npm start
Remarque
Si votre complément n’a pas été automatiquement chargé de manière indépendante, suivez les instructions fournies dans Charger une version test des compléments Outlook pour charger manuellement une version test du complément dans Outlook.
Dans Outlook sur le web, créez un message.
Dans Outlook sur la nouvelle interface utilisateur Mac, créez un message.
Dans Outlook sur Windows, créez un message.
Guide de résolution des problèmes
Au fur et à mesure que vous développez votre complément basé sur les événements, vous devrez peut-être résoudre des problèmes, tels que le fait que votre complément ne se charge pas ou que l’événement ne se produit pas. Si vous rencontrez des problèmes de développement, reportez-vous aux quatre sections suivantes pour obtenir des conseils de dépannage.
Passer en revue les prérequis de l’activation basée sur les événements
- Vérifiez que le complément est installé sur un client Outlook pris en charge. L’activation basée sur les événements n’est pas prise en charge dans Outlook sur iOS ou Android pour l’instant.
- Vérifiez que votre client Outlook prend en charge l’ensemble de conditions requises minimales nécessaires pour gérer l’événement. L’activation basée sur les événements a été introduite dans l’ensemble de conditions requises 1.10, avec des événements supplémentaires désormais pris en charge dans les ensembles de conditions requises suivants. Pour plus d’informations, consultez Événements pris en charge et Ensembles de conditions requises pris en charge par les serveurs Exchange et les clients Outlook. Si vous développez un complément qui utilise la fonctionnalité Alertes intelligentes , consultez la section Clients et plateforme pris en charge.
- Passez en revue le comportement attendu et les limitations des fonctionnalités d’activation basée sur les événements et d’alertes intelligentes .
Vérifier la configuration requise pour le manifeste et JavaScript
Vérifiez que les conditions suivantes sont remplies dans le manifeste de votre complément.
- Vérifiez que l’URL de l’emplacement du fichier source de votre complément est disponible publiquement et n’est pas bloquée par un pare-feu. Cette URL est spécifiée dans l’élément SourceLocation de votre manifeste.
- Vérifiez que l’élément <Runtimes> référence correctement le fichier HTML ou JavaScript contenant les gestionnaires d’événements. Outlook sur Windows utilise le fichier JavaScript pendant l’exécution, tandis que Outlook sur le web et sur la nouvelle interface utilisateur Mac utilisent le fichier HTML. Pour obtenir un exemple de configuration dans le manifeste, consultez Configurer le manifeste.
Vérifiez que votre fichier JavaScript de gestion des événements référencé par le client Outlook sur Windows appelle
Office.actions.associate
. Cela garantit que le nom du gestionnaire d’événements spécifié dans l’élément LaunchEvent> du< manifeste est mappé à son équivalent JavaScript.Conseil
Si votre complément basé sur les événements n’a qu’un seul fichier JavaScript référencé par Outlook sur le web, Windows et Mac, il est recommandé de vérifier la plateforme sur laquelle le complément s’exécute pour déterminer quand appeler
Office.actions.associate
, comme indiqué dans le code suivant.if (Office.context.platform === Office.PlatformType.PC || Office.context.platform == null) { Office.actions.associate("onNewMessageComposeHandler", onNewMessageComposeHandler); Office.actions.associate("onNewAppointmentComposeHandler", onNewAppointmentComposeHandler); }
Le code JavaScript des compléments basés sur des événements qui s’exécutent dans Outlook sur Windows prend uniquement en charge les spécifications ECMAScript 2016 et antérieures. Voici quelques exemples de syntaxe de programmation à éviter.
- Évitez d’utiliser des
async
instructions etawait
dans votre code. L’inclusion de ces éléments dans votre code JavaScript entraîne l’expiration du délai d’attente du complément. - Évitez d’utiliser l’opérateur conditionnel (ternaire), car il empêchera le chargement de votre complément.
Si votre complément n’a qu’un seul fichier JavaScript référencé par Outlook sur le web, Windows et Mac, vous devez limiter votre code à ECMAScript 2016 pour vous assurer que votre complément s’exécute dans Outlook sur Windows. Toutefois, si vous avez un fichier JavaScript distinct référencé par Outlook sur le web et Mac, vous pouvez implémenter une spécification ECMAScript ultérieure dans ce fichier.
- Évitez d’utiliser des
Déboguer votre complément
- Lorsque vous apportez des modifications à votre complément, n’oubliez pas que :
- Si vous mettez à jour le manifeste, supprimez le complément, puis rechargez-le. Si vous utilisez Outlook sur Windows, vous devez également fermer et rouvrir Outlook.
- Si vous apportez des modifications à des fichiers autres que le manifeste, fermez et rouvrez le client de bureau Outlook ou actualisez l’onglet du navigateur exécutant Outlook sur le web.
- Si vous ne parvenez toujours pas à voir vos modifications après avoir effectué ces étapes, effacez votre cache Office.
- Lorsque vous testez votre complément dans Outlook sur Windows :
Vérifiez observateur d'événements des erreurs de complément signalées.
- Dans observateur d'événements, sélectionnezApplicationjournaux> Windows.
- Dans le panneau Actions , sélectionnez Filtrer le journal actuel.
- Dans la liste déroulante Journalisation , sélectionnez la période de journalisation de votre choix.
- Cochez la case Erreur .
- Dans le champ ID d’événement , entrez 63.
- Sélectionnez OK pour appliquer vos filtres.
Vérifiez que le fichier bundle.js est téléchargé dans le dossier suivant dans Explorateur de fichiers. Remplacez le texte joint par
[]
vos informations applicables.%LOCALAPPDATA%\Microsoft\Office\16.0\Wef\{[Outlook profile GUID]}\[Outlook mail account encoding]\Javascript\[Add-in ID]_[Add-in Version]_[locale]
Si le fichier bundle.js n’apparaît pas dans le dossier, supprimez votre complément d’Outlook, puis rechargez-le.
- Lorsque vous testez votre complément dans Outlook sur Windows ou Mac, activez la journalisation du runtime pour identifier les éventuels problèmes d’installation du manifeste et du complément. Pour obtenir des conseils sur l’utilisation de la journalisation du runtime, consultez Déboguer votre complément avec la journalisation du runtime.
- Définissez des points d’arrêt dans votre code pour déboguer votre complément. Pour obtenir des instructions spécifiques à la plateforme, consultez Déboguer votre complément Outlook basé sur les événements.
Demander de l’aide supplémentaire
Si vous avez toujours besoin d’aide après avoir effectué les étapes de résolution des problèmes recommandées, ouvrez un problème GitHub. Incluez des captures d’écran, des enregistrements vidéo ou des journaux d’exécution pour compléter votre rapport.
Déployer sur les utilisateurs
Les compléments basés sur les événements sont limités aux déploiements gérés par l’administrateur uniquement, même s’ils sont acquis à partir d’AppSource. Si les utilisateurs acquièrent le complément à partir d’AppSource ou de l’Office Store dans l’application, ils ne pourront pas activer la fonction basée sur les événements du complément. Pour en savoir plus sur l’affichage de votre complément basé sur les événements dans AppSource, consultez Options de référencement AppSource pour votre complément Outlook basé sur les événements.
Administration déploiements s’effectuent en chargeant le manifeste dans le Centre d'administration Microsoft 365. Dans le portail d’administration, développez la section Paramètres dans le volet de navigation, puis sélectionnez Applications intégrées. Dans la page Applications intégrées , choisissez l’action Charger des applications personnalisées .
Importante
Les compléments qui utilisent la fonctionnalité Alertes intelligentes ne peuvent être publiés sur AppSource que si la propriété SendMode du manifeste est définie sur l’option SoftBlock
ou PromptUser
. Si la propriété SendMode d’un complément est définie sur Block
, elle ne peut être déployée que par l’administrateur d’une organisation, car la validation AppSource échoue.
Déployer des mises à jour de manifeste
Étant donné que les compléments basés sur les événements sont déployés par les administrateurs, toute modification apportée au manifeste nécessite le consentement de l’administrateur via le Centre d'administration Microsoft 365. Tant que l’administrateur n’accepte pas vos modifications, les utilisateurs de leur organisation ne peuvent pas utiliser le complément. Pour en savoir plus sur le processus de consentement administrateur, consultez Administration consentement pour l’installation de compléments basés sur des événements.
Comportement et limitations de l’activation basée sur les événements
Les gestionnaires d’événements de lancement de compléments sont censés être courts, légers et aussi non invasifs que possible. Après l’activation, votre complément expire dans un délai d’environ 300 secondes, durée maximale autorisée pour l’exécution des compléments basés sur les événements. Pour signaler que votre complément a terminé le traitement d’un événement de lancement, le gestionnaire d’événements associé doit appeler la event.completed
méthode . (Notez que l’exécution du code inclus après l’instruction event.completed
n’est pas garantie.) Chaque fois qu’un événement géré par votre complément est déclenché, le complément est réactivé et exécute le gestionnaire d’événements associé, et la fenêtre de délai d’expiration est réinitialisée. Le complément se termine après son expiration, ou l’utilisateur ferme la fenêtre de composition ou envoie l’élément.
Si l’utilisateur a plusieurs compléments qui se sont abonnés au même événement, la plateforme Outlook lance les compléments dans aucun ordre particulier. Actuellement, seuls cinq compléments basés sur des événements peuvent être en cours d’exécution.
Dans tous les clients Outlook pris en charge, l’utilisateur doit rester sur l’élément de courrier actuel dans lequel le complément a été activé pour qu’il s’exécute. Si vous quittez l’élément actif (par exemple, en basculant vers une autre fenêtre de composition ou un autre onglet), l’opération de complément est terminée. Le complément cesse également de fonctionner lorsque l’utilisateur envoie le message ou le rendez-vous qu’il compose.
Lorsque vous développez un complément basé sur des événements à exécuter dans le client Outlook sur Windows, tenez compte des points suivants :
- Les importations ne sont pas prises en charge dans le fichier JavaScript dans lequel vous implémentez la gestion de l’activation basée sur les événements.
- Les compléments n’exécutent pas de code inclus dans
Office.onReady()
etOffice.initialize
. Nous vous recommandons d’ajouter une logique de démarrage, telle que la vérification de la version d’Outlook de l’utilisateur, à vos gestionnaires d’événements à la place.
Certaines API Office.js qui modifient ou modifient l’interface utilisateur ne sont pas autorisées à partir de compléments basés sur des événements. Voici les API bloquées.
- Sous
Office.context.auth
:getAccessToken
getAccessTokenAsync
Remarque
OfficeRuntime.auth est pris en charge dans toutes les versions d’Outlook qui prennent en charge l’activation basée sur les événements et l’authentification unique (SSO), tandis qu’Office.auth n’est pris en charge que dans certaines builds Outlook. Pour plus d’informations, consultez Activer l’authentification unique (SSO) dans les compléments Outlook qui utilisent l’activation basée sur les événements.
- Sous
Office.context.mailbox
:displayAppointmentForm
displayMessageForm
displayNewAppointmentForm
displayNewMessageForm
- Sous
Office.context.mailbox.item
:close
- Sous
Office.context.ui
:displayDialogAsync
messageParent
Demande de données externes
Vous pouvez demander des données externes à l’aide d’une API telle que Fetch ou à l’aide de XMLHttpRequest (XHR), une API web standard qui émet des requêtes HTTP pour interagir avec les serveurs.
N’oubliez pas que vous devez utiliser des mesures de sécurité supplémentaires lors de l’utilisation d’objets XMLHttpRequest, nécessitant la même stratégie d’origine et un simple CORS (Cross-Origin Resource Sharing).
Une implémentation CORS simple :
- Impossible d’utiliser des cookies.
- Prend uniquement en charge les méthodes simples, telles que
GET
,HEAD
etPOST
. - Accepte des en-têtes simples avec des noms
Accept
de champ ,Accept-Language
ouContent-Language
. - Peut utiliser le
Content-Type
, à condition que le type de contenu soitapplication/x-www-form-urlencoded
,text/plain
oumultipart/form-data
. - Les écouteurs d’événements ne peuvent pas être inscrits sur l’objet retourné par
XMLHttpRequest.upload
. - Impossible d’utiliser des
ReadableStream
objets dans les requêtes.
Remarque
La prise en charge complète de CORS est disponible dans Outlook sur le web, Mac et Windows (à partir de la version 2201, build 16.0.14813.10000).
Voir aussi
- Manifestes de complément Outlook
- Comment déboguer des compléments basés sur des événements
- Options de liste AppSource pour votre complément Outlook basé sur les événements
- Procédure pas à pas des alertes intelligentes et OnMessageSend
- Mettre à jour automatiquement votre signature lors du basculement entre les comptes de messagerie (préversion)
- Exemples de code des compléments Office :
- Utiliser l’activation basée sur les événements Outlook pour chiffrer les pièces jointes, traiter les participants aux demandes de réunion et réagir aux modifications de date/heure de rendez-vous
- Utiliser l’activation Outlook basée sur un événement pour définir la signature
- Utiliser l’activation basée sur les événements Outlook pour marquer les destinataires externes
- Utiliser Alertes intelligentes d’Outlook