Partager via


Gérer la date et l’heure de remise d’un message

Le client Outlook vous donne la possibilité de retarder la remise d’un message, mais vous oblige à conserver Outlook et votre appareil en cours d’exécution pour l’envoyer à l’heure spécifiée. Avec l’API JavaScript Office, vous pouvez désormais implémenter un complément Outlook qui envoie des messages planifiés même si votre client Outlook est fermé ou que votre appareil est éteint. Cette fonctionnalité offre à vos utilisateurs la commodité de planifier des campagnes de marketing par e-mail ou de planifier la remise d’un message pendant les heures d’ouverture d’un collègue ou d’un client.

Remarque

La prise en charge de cette fonctionnalité a été introduite dans l’ensemble de conditions requises 1.13. Voir les clients et les plateformes qui prennent en charge cet ensemble de conditions requises.

Configurer le manifeste

Pour planifier la remise d’un message, votre complément doit être en mesure de s’activer en mode de composition de message. Cela est défini par le biais du point d’extension MessageComposeCommandSurface dans un manifeste XML ou de la propriété « contexts » mailCompose dans un manifeste unifié pour Microsoft 365.

Pour obtenir des conseils supplémentaires sur la configuration d’un manifeste de complément Outlook, voir Manifestes de complément Office.

Accéder à la propriété de remise d’un message

La propriété item.delayDeliveryTime renvoie un objet DelayDeliveryTime qui vous fournit des méthodes pour obtenir ou définir la date et l’heure de remise d’un message.

Obtenir la date et l’heure de remise d’un message

Pour obtenir la date et l’heure de remise d’un message en mode composition, appelez item.delayDeliveryTime.getAsync comme indiqué dans l’exemple suivant. Si une date de remise n’a pas encore été définie sur un message, l’appel retourne 0. Sinon, elle renvoie un objet JavaScript Date.

// Gets the delivery date and time of a message.
Office.context.mailbox.item.delayDeliveryTime.getAsync((asyncResult) => {
  if (asyncResult.status === Office.AsyncResultStatus.Failed) {
    console.log(asyncResult.error.message);
    return;
  }

  const deliveryDate = asyncResult.value;
  if (deliveryDate === 0) {
    console.log("Your message will be delivered immediately when you select Send.");
  } else {
    const date = new Date(deliveryDate);
    console.log(`Message delivery date and time: ${date.toString()}`);
  }
});

Définir la date et l’heure de remise d’un message

Pour retarder la remise d’un message, transmettez un objet JavaScript Date en tant que paramètre à la méthode item.delayDeliveryTime.setAsync , comme illustré dans l’exemple suivant.

// Delays the delivery time by five minutes from the current time.
const currentTime = new Date().getTime();
const milliseconds = 5 * 60 * 1000;
const timeDelay = new Date(currentTime + milliseconds);
Office.context.mailbox.item.delayDeliveryTime.setAsync(timeDelay, (asyncResult) => {
  if (asyncResult.status === Office.AsyncResultStatus.Failed) {
    console.log(asyncResult.error.message);
    return;
  }

  console.log("Message delivery has been scheduled.");
});

Comportement et limitations des fonctionnalités

Lorsque vous planifiez la remise d’un message à l’aide de la item.delayDeliveryTime.setAsync méthode , le délai est traité sur le serveur. Cela permet d’envoyer le message même si le client Outlook n’est pas en cours d’exécution. Toutefois, pour cette raison, le message n’apparaît pas dans le dossier Boîte d’envoi. Vous ne pourrez donc pas modifier le message ou annuler sa remise après avoir sélectionné Envoyer. Vous serez en mesure de consulter le message à partir du dossier Éléments envoyés une fois le message envoyé.

Ce comportement diffère d’un message planifié à l’aide de l’option de remise différée native dans le client Outlook, qui traite le délai côté client. Un message planifié à l’aide de cette option apparaît dans le dossier Boîte d’envoi et est remis uniquement si le client Outlook à partir duquel il a été envoyé s’exécute à l’heure de remise spécifiée.

Essayer des exemples d’extraits de code dans Script Lab

Obtenez le complément Script Lab pour Outlook et essayez l’exemple d’extrait de code « Obtenir et définir la remise des messages (Composition de message) ». Pour en savoir plus sur Script Lab, consultez Explorer l’API JavaScript Office à l’aide de Script Lab.

L’exemple d’extrait de code de remise de message dans Script Lab.

Remarque

À compter de la version 115 des navigateurs basés sur Chromium, tels que Chrome et Edge, le partitionnement du stockage est testé pour empêcher le suivi intersites par canal latéral spécifique (voir aussi stratégies de navigateur Microsoft Edge). Cette modification empêche Script Lab extraits de code de s’exécuter dans Outlook sur le web. Pour contourner ce problème, accédez à chrome://flags ou edge://flags dans votre navigateur, puis définissez l’indicateur Partitionnement de stockage tiers (#third-party-storage-partitioning) sur Désactivé.

Voir aussi