Compartilhar via


Gerir a data e hora de entrega de uma mensagem

O cliente do Outlook dá-lhe a opção de atrasar a entrega de uma mensagem, mas requer que mantenha o Outlook e o seu dispositivo em execução para enviá-la no momento especificado. Com a API javaScript do Office, agora pode implementar um suplemento do Outlook que envia mensagens agendadas mesmo com o seu cliente do Outlook fechado ou com o seu dispositivo desativado. Esta capacidade proporciona aos seus utilizadores a conveniência de agendar campanhas de marketing por e-mail ou tempo para que uma mensagem seja entregue durante o horário comercial de um colega ou cliente.

Observação

O suporte para esta funcionalidade foi introduzido no conjunto de requisitos 1.13. Confira, clientes e plataformas que oferecem suporte a esse conjunto de requisitos.

Configurar o manifesto

Para agendar a entrega de uma mensagem, o suplemento tem de conseguir ativar no modo de composição de mensagens. Isto é definido através do ponto de extensão MessageComposeCommandSurface num manifesto apenas de suplemento ou da propriedade mailCompose "contexts" num manifesto unificado para o Microsoft 365.

Para obter mais orientações sobre como configurar um manifesto de suplemento do Outlook, consulte Manifestos de suplementos do Office.

Aceder à propriedade de entrega de uma mensagem

A propriedade item.delayDeliveryTime devolve um objeto DelayDeliveryTime que lhe fornece métodos para obter ou definir a data e hora de entrega de uma mensagem.

Obter a data e hora de entrega de uma mensagem

Para obter a data e hora de entrega de uma mensagem no modo de composição, chame item.delayDeliveryTime.getAsync , conforme mostrado no exemplo seguinte. Se ainda não tiver sido definida uma data de entrega numa mensagem, a chamada devolve 0. Caso contrário, devolve um objeto Data de JavaScript.

// 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()}`);
  }
});

Definir a data e hora de entrega de uma mensagem

Para atrasar a entrega de uma mensagem, transmita um objeto Data de JavaScript como um parâmetro para o método item.delayDeliveryTime.setAsync , conforme mostrado no exemplo seguinte.

// 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.");
});

Comportamento e limitações de funcionalidades

Quando agenda a entrega de uma mensagem com o item.delayDeliveryTime.setAsync método , o atraso é processado no servidor. Isto permite que a mensagem seja enviada mesmo que o cliente do Outlook não esteja em execução. No Outlook clássico no Windows, a mensagem não aparece na pasta Caixa de Saída , pelo que não poderá editar a mensagem ou cancelar a entrega após selecionar Enviar. No entanto, poderá rever a mensagem a partir da pasta Itens Enviados . No Outlook na Web, no Mac e no novo Outlook no Windows, a mensagem é apresentada na pasta Rascunhos até à hora de entrega agendada. Enquanto estiver na pasta Rascunhos , poderá editar a mensagem antes de ser enviada.

O item.delayDeliveryTime.setAsync comportamento difere de uma mensagem agendada através da opção Nativa Atrasar Entrega no cliente do Outlook, que processa o atraso do lado do cliente. Uma mensagem agendada com esta opção é apresentada na pasta Caixa de Saída e só é entregue se o cliente do Outlook a partir do qual foi enviado estiver em execução no momento de entrega especificado.

Experimentar fragmentos de exemplo no Script Lab

Obtenha o suplemento Script Lab do Outlook e experimente o fragmento de exemplo "Obter e definir a entrega de mensagens (Compose de mensagens)". Para saber mais sobre o Script Lab, consulte Explorar a API JavaScript do Office usando o Script Lab.

O fragmento de exemplo de entrega de mensagens no Script Lab.

Confira também