コンテキスト Outlook アドイン

コンテキスト アドインは、メッセージまたは予定のテキストに基づいてアクティブ化する Outlook アドインです。 コンテキスト アドインを使用すると、ユーザーはアイテム自体を離れることなく、メール アイテムに関連するタスクを開始できます。 たとえば、コンテキスト アドインでは、会議の提案アドインを開くメール アイテムの本文にある文字列を選択できます。

正規表現ルールを指定して、メッセージの特定のフィールドに一致するものが見つかったときにコンテキスト アドインをアクティブにすることができます。 コンテキスト アドインは、読み取りモードでのみアクティブ化されます。 Outlook は、ユーザーがアイテムを作成しているときにコンテキスト アドインをアクティブ化しません。

重要

エンティティベースのコンテキスト Outlook アドインは廃止されました。 代替ソリューションとして、コンテキスト アドインに正規表現ルールを実装します。

マニフェストを構成する

注:

アドインが Microsoft 365 の統合マニフェストを使用している場合、コンテキスト Outlook アドインはサポートされません。

コンテキスト アドインのマニフェストには、xsi:type 属性が DetectedEntity に設定された ExtensionPoint 要素が含まれている必要があります。 その後、<ExtensionPoint> 要素内で、アドインは xsi:type 属性を ItemHasRegularExpressionMatch に設定した Rule 要素を使用して正規表現ルールを指定する必要があります。

次の例では、現在のメール アイテムの本文に株式記号が含まれているたびにアドインがアクティブになります。

<ExtensionPoint xsi:type="DetectedEntity">
  <Label resid="Context.Label" />
  <SourceLocation resid="DetectedEntity.URL" />
  <Rule xsi:type="ItemHasRegularExpressionMatch" PropertyName="BodyAsPlaintext" RegExName="TickerSymbols" RegExValue="\b(NYSE|NASDAQ|AMEX):\s*[A-Za-z]+\b" />
</ExtensionPoint>

正規表現ルールでサポートされている文字

Outlook では、クライアント コンピューターのブラウザーまたは webview コントロールで使用される JavaScript インタープリターの規則に基づいて正規表現が評価されます。 簡潔にするために、この記事では "ブラウザー" は "ブラウザーまたは webview コントロール" を指すために使用します。 Outlook では、すべての XML プロセッサでもサポートされているものと同じ特殊文字リストをサポートしています。 次の表は、このような特殊文字を示しています。 これらの文字は、対応する文字のエスケープ シーケンスを指定することによって、正規表現で使用できます。

文字 説明 使用するエスケープ シーケンス
" 二重引用符 &quot;
& アンパサンド &amp;
' アポストロフィ &apos;
< より小さい &lt;
> より大きい &gt;

ルールで正規表現を使用する場合のベスト プラクティス

正規表現を使用する場合は、次の点に注意してください。

  • 項目の本文に ItemHasRegularExpressionMatch ルールを指定する場合、正規表現は本文をさらにフィルター処理し、項目の本文全体を返そうとしないでください。 .* などの正規表現を使用して項目の本文全体を取得しようとすると、常に期待どおりの結果が返されるとは限りません。

  • あるブラウザーで返されたプレーンテキストの本文は、別のブラウザーではわずかに異なることがあります。 BodyAsPlaintextPropertyName 属性として ItemHasRegularExpressionMatch ルールを使用する場合は、アドインのサポート対象であるすべてのブラウザーで正規表現をテストします。

    さまざまなブラウザーがさまざまな方法で選択したアイテムの本文を取得するため、使用している正規表現が、本文の一部として返される可能性がある微妙な違いをサポートしていることを確認する必要があります。 たとえば、ブラウザーは改行を異なる方法で返す場合があります。 For more information, see W3C DOM Compatibility - HTML.

  • アイテムの HTML 本文は、従来の Outlook on Windows または Outlook on Mac と、モバイル デバイスの Outlook on the web、または新しい Outlook on Windows との間で若干異なります。 正規表現を正確に定義する必要があります。

  • 正規表現を適用する Outlook クライアント、デバイスの種類、またはプロパティに応じて、正規表現をアクティブ化ルールとして設計するときに知っておく必要がある、各クライアントのベスト プラクティスと制限事項が他にも存在します。 詳細については、「 アクティブ化の制限」と「Outlook アドインの JavaScript API」を参照してください。

JavaScript コードで正規表現の結果を使用する

アドインの JavaScript コードでは、現在のアイテムに対して次のメソッドを使用して正規表現との一致を取得できます。

  • getRegExMatches (MessageReadAppointmentRead) は、アドインの ItemHasRegularExpressionMatch ルールで指定されているすべての正規表現の現在のアイテムの一致を返します。

  • getRegExMatchesByName (MessageReadAppointmentRead) は、アドインの ItemHasRegularExpressionMatch ルールで指定されている識別された正規表現の現在のアイテムの一致を返します。

  • getSelectedRegExMatches (MessageReadAppointmentRead) は、アドインの ItemHasRegularExpressionMatch ルールで指定されている正規表現の現在のアイテムで強調表示された一致を返します。

正規表現が評価されると、配列オブジェクトに入れてアドインに一致が返されます。 getRegExMatches については、そのオブジェクトに正規表現の名前の識別子があります。

注:

Outlook は、配列内の特定の順序で一致を返しません。 また、これら各クライアントで同じアドインを同じメールボックス内の同じアイテムに対して実行した場合でも、この配列で一致が同じ順序で返されると想定しないでください。

以下は、videoURL という名前の正規表現を持つItemHasRegularExpressionMatchルールを含むルール コレクションの例です。

<Rule xsi:type="RuleCollection" Mode="And">
    <Rule xsi:type="ItemIs" ItemType="Message"/>
    <Rule xsi:type="ItemHasRegularExpressionMatch" RegExName="videoURL" RegExValue="http://www\.youtube\.com/watch\?v=[a-zA-Z0-9_-]{11}" PropertyName="BodyAsPlaintext"/>
</Rule>

次に、現在のメッセージに対して getRegExMatches メソッドが呼び出され、指定したItemHasRegularExpressionMatchルールの結果videos変数が設定されます。

const videos = Office.context.mailbox.item.getRegExMatches().videoURL;

関連項目