Поделиться через


Управление датой и временем доставки сообщения

Клиент Outlook предоставляет возможность отложить доставку сообщения, но требует, чтобы outlook и устройство работали, чтобы отправить его в указанное время. С помощью API JavaScript для Office теперь можно реализовать надстройку Outlook, которая отправляет запланированные сообщения даже при закрытии клиента Outlook или отключенном устройстве. Эта возможность позволяет пользователям с удобством планировать маркетинговые кампании по электронной почте или время доставки сообщения в рабочее время коллеги или клиента.

Примечание.

Поддержка этой функции появилась в наборе требований 1.13. См клиенты и платформы, поддерживающие этот набор обязательных требований.

Настройка манифеста

Чтобы запланировать доставку сообщения, надстройка должна иметь возможность активироваться в режиме создания сообщений. Это определяется через точку расширения MessageComposeCommandSurface в манифесте только надстройки или свойство mailCompose contexts в манифесте Unified для Microsoft 365.

Дополнительные рекомендации по настройке манифеста надстройки Outlook см. в разделе Манифесты надстройки Office.

Доступ к свойству доставки сообщения

Свойство item.delayDeliveryTime возвращает объект DelayDeliveryTime , который предоставляет методы для получения или задания даты и времени доставки сообщения.

Получение даты и времени доставки сообщения

Чтобы получить дату и время доставки сообщения в режиме создания, вызовите метод item.delayDeliveryTime.getAsync , как показано в следующем примере. Если дата доставки еще не задана для сообщения, вызов возвращает 0. В противном случае возвращается объект 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()}`);
  }
});

Установка даты и времени доставки сообщения

Чтобы отложить доставку сообщения, передайте объект JavaScript Date в качестве параметра в метод item.delayDeliveryTime.setAsync , как показано в следующем примере.

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

Поведение и ограничения функций

При планировании доставки сообщения с помощью item.delayDeliveryTime.setAsync метода задержка обрабатывается на сервере. Это позволяет отправлять сообщение, даже если клиент Outlook не запущен. В классической версии Outlook в Windows сообщение не отображается в папке Исходящие , поэтому вы не сможете изменить сообщение или отменить его доставку после нажатия кнопки Отправить. Однако вы сможете просмотреть сообщение из папки Отправленные . В Outlook в Интернете, на Компьютере Mac и в новом Outlook в Windows сообщение отображается в папке Черновики до запланированного времени доставки. Находясь в папке Черновики , вы сможете изменить сообщение перед его отправкой.

Поведение item.delayDeliveryTime.setAsync отличается от сообщения, запланированного с помощью собственного параметра задержки доставки в клиенте Outlook, который обрабатывает задержку на стороне клиента. Сообщение, запланированное с помощью этого параметра, отображается в папке Исходящие и доставляется только в том случае, если клиент Outlook, из которого оно было отправлено, работает в указанное время доставки.

Попробуйте примеры фрагментов кода в Script Lab

Получите Script Lab для надстройки Outlook и попробуйте пример фрагмента кода "Получение и настройка доставки сообщений (Compose сообщений)". Дополнительные сведения о Script Lab см. в статье Изучение API JavaScript для Office с помощью Script Lab.

Фрагмент примера доставки сообщений в Script Lab.

См. также