コンテキスト Outlook アドイン
コンテキスト アドインは、メッセージまたは予定のテキストに基づいてアクティブ化する Outlook アドインです。 コンテキスト アドインを使用すると、ユーザーはアイテム自体を残さずに、メール アイテムに関連するタスクを開始できます。 たとえば、コンテキスト アドインは、会議の提案アドインを開くメール アイテムの本文で文字列を選択できます。
メッセージの特定のフィールドで一致するものが見つかった場合にコンテキスト アドインをアクティブ化する正規表現ルールを指定できます。 コンテキスト アドインは、読み取りモードでのみアクティブになります。 ユーザーがアイテムを作成している場合、Outlook はコンテキスト アドインをアクティブ化しません。
重要
エンティティベースのコンテキスト Outlook アドインは廃止されました。 別のソリューションとして、コンテキスト アドインに正規表現ルールを実装します。
マニフェストを構成する
注:
コンテキスト Outlook アドインは、アドインで Microsoft 365 用の統合マニフェストを使用する場合はサポートされません。
コンテキスト アドインのマニフェストには、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 プロセッサでもサポートされているものと同じ特殊文字リストをサポートしています。 次の表は、このような特殊文字を示しています。 これらの文字を正規表現で使用するには、対応する文字のエスケープ シーケンスを指定します。
文字 | 説明 | 使用するエスケープ シーケンス |
---|---|---|
" |
二重引用符 | " |
& |
アンパサンド | & |
' |
アポストロフィ | ' |
< |
より小さい | < |
> |
より大きい | > |
ルールで正規表現を使用する場合のベスト プラクティス
正規表現を使用する場合は、次の点に注意してください。
アイテムの本文に
ItemHasRegularExpressionMatch
ルールを指定した場合、正規表現は本文をさらにフィルター処理し、アイテムの本文全体を返そうとしないでください。.*
などの正規表現を使用してアイテムの本文全体を取得しようとすると、常に期待される結果が返されるとは限りません。あるブラウザーで返されたプレーンテキストの本文は、別のブラウザーではわずかに異なることがあります。
BodyAsPlaintext
をPropertyName
属性として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 は、 アドインの
ItemHasRegularExpressionMatch
規則で指定されたすべての正規表現について、現在の項目の一致を返します。getRegExMatchesByName は、アドインの
ItemHasRegularExpressionMatch
ルールで指定されている特定された正規表現について、現在のアイテムで一致するものを返します。getSelectedRegExMatches は、 アドインの
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;
関連項目
- Outlook アドイン: Contoso 社の注文番号 (正規表現の一致に基づいてアクティブ化されるコンテキスト アドインのサンプル)
- 最初の Outlook アドインをビルドする
Office Add-ins