Share via


メッセージの配信日時を管理する

Outlook クライアントでは、メッセージの配信を遅延させるオプションが提供されますが、指定した時刻に送信するには、Outlook とデバイスを実行したままにする必要があります。 Office JavaScript API を使用すると、Outlook クライアントを閉じたり、デバイスをオフにしたりしても、スケジュールされたメッセージを送信する Outlook アドインを実装できるようになりました。 この機能により、ユーザーは、メール マーケティング キャンペーンをスケジュールしたり、同僚や顧客の営業時間中にメッセージを配信する時間をスケジュールしたりできます。

注:

この機能のサポートは 、要件セット 1.13 で導入されました。 この要件セットをサポートする クライアントおよびプラットフォーム を参照してください。

マニフェストを構成する

メッセージの配信をスケジュールするには、アドインがメッセージ作成モードでアクティブ化できる必要があります。 これは、XML マニフェストの 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 クライアントのネイティブ 遅延配信 オプションを使用してスケジュールされたメッセージとは異なります。 このオプションを使用してスケジュールされたメッセージは Outbox フォルダーに表示され、送信元の Outlook クライアントが指定した配信時刻に実行されている場合にのみ配信されます。

Script Labでサンプル スニペットを試す

Outlook アドインのScript Labを取得し、"メッセージ配信の取得と設定 (メッセージ作成)" サンプル スニペットを試します。 Script Lab の詳細については、「Script Lab を使用して Office JavaScript API を探索する」を参照してください。

Script Labのメッセージ配信サンプル スニペット。

注:

Chrome や Edge などの Chromium ベースのブラウザーのバージョン 115 以降では、ストレージのパーティション分割がテストされ、特定のサイド チャネルクロスサイト追跡を防ぎます (「Microsoft Edge ブラウザー ポリシー」も参照)。 この変更により、Script Lab スニペットがOutlook on the webで実行されなくなります。 これを回避するには、ブラウザー で [chrome://flags ] または [edge://flags ] に移動し、[ サード パーティの記憶域パーティション分割 (#third-party-storage-partitioning)] フラグを[無効] に設定します。

関連項目