Управление датой и временем доставки сообщения
Клиент 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.
См. также
Office Add-ins