Outlook クライアントが閉じられたり、デバイスがオフになっている場合でもメッセージをスケジュールして送信する Outlook アドインを構築する方法について説明します。 Office JavaScript API を使用すると、ユーザーは、メール マーケティング キャンペーンや、同僚や顧客の営業時間中に配信するためのタイム メッセージを簡単にスケジュールできます。
注:
この機能のサポートは 、要件セット 1.13 で導入されました。 この要件セットをサポートする クライアントおよびプラットフォーム を参照してください。
試してみる
動作しているメッセージ配信 API を参照してください。 Outlook アドインのScript Labをインストールし、「メッセージ配信の取得と設定 (メッセージ Compose)」サンプル スニペットを試してください。 Script Lab の詳細については、「Script Lab を使用して Office JavaScript API を探索する」を参照してください。
マニフェストを構成する
メッセージの配信をスケジュールするには、アドインがメッセージ作成モードでアクティブ化できる必要があります。 これは、アドイン専用マニフェストの 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 クライアントが指定した配信時刻に実行されている場合にのみ配信されます。
関連項目
Office Add-ins