メッセージの配信日時を管理する
Outlook クライアントでは、メッセージの配信を遅延させるオプションが提供されますが、指定した時刻に送信するには、Outlook とデバイスを実行したままにする必要があります。 Office JavaScript API を使用すると、Outlook クライアントを閉じたり、デバイスをオフにしたりしても、スケジュールされたメッセージを送信する Outlook アドインを実装できるようになりました。 この機能により、ユーザーは、メール マーケティング キャンペーンをスケジュールしたり、同僚や顧客の営業時間中にメッセージを配信する時間をスケジュールしたりできます。
注:
この機能のサポートは 、要件セット 1.13 で導入されました。 この要件セットをサポートする クライアントおよびプラットフォーム を参照してください。
マニフェストを構成する
メッセージの配信をスケジュールするには、アドインがメッセージ作成モードでアクティブ化できる必要があります。 これは、アドインのみのマニフェストの MessageComposeCommandSurface 拡張ポイントまたは Microsoft 365 の統合マニフェストの mailCompose "contexts" プロパティを使用して定義されます。
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 on Windows では、メッセージは 送信トレイ フォルダーに表示されないため、[ 送信] を選択した後にメッセージを編集したり、配信をキャンセルしたりすることはできません。 ただし、 送信済みアイテム フォルダーからメッセージを確認できます。 Outlook on the web、Mac、および新しい Outlook on Windows では、スケジュールされた配信時間まで下書きフォルダーにメッセージが表示されます。
下書きフォルダーにある間は、メッセージを送信する前に編集できます。
item.delayDeliveryTime.setAsync
動作は、遅延クライアント側を処理する Outlook クライアントのネイティブ遅延配信オプションを使用してスケジュールされたメッセージとは異なります。 このオプションを使用してスケジュールされたメッセージは Outbox フォルダーに表示され、送信元の Outlook クライアントが指定した配信時刻に実行されている場合にのみ配信されます。
Script Labでサンプル スニペットを試す
Outlook アドインのScript Labを取得し、「メッセージ配信の取得と設定 (メッセージ Compose)」サンプル スニペットを試してください。 Script Lab の詳細については、「Script Lab を使用して Office JavaScript API を探索する」を参照してください。
関連項目
Office Add-ins