Skip to content

clear-code/typical-reply-outlook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

typical-reply-outlook

概要

定型文での返信を提供するOutlook向けアドオンです。

例えば、以下のメールを受信したとします。

件名:
  例の件について

本文:
  お疲れ様です。
  例の件について以下の案を考えてみたのですが、いかがでしょうか?
  http://...

このとき、以下のいずれかの手順ですぐに定型文で返信することができます。

  • リボンの「Typical Reply」ボタンから、「いいね!」を選択 "リボン"
  • メールを右クリックして表示されるコンテキストメニューの「Typical Reply」ギャラリーから、「いいね!」を選択 "コンテキストメニュー"
Subject:
  [[いいね!]]: Re: 例の件について

Body:
  いいね!
  
  > -----Original Message-----
  > お疲れ様です。
  > 例の件について以下の案を考えてみたのですが、いかがでしょうか?
  > http://...

これらの返信内容の設定はグループポリシーによってドメイン単位での一元管理が可能です。 個別の設定ファイルによるユーザー単位での設定変更も可能です。

グループポリシーによる設定

policy配下のadmx、admlファイルをグループポリシーファイルを以下のパスに配置します。

  • Active Directoryのグループポリシーに追加する場合
    • C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions
  • ローカルグループポリシーに追加する場合
    • C:\Windows\PolicyDefinitions

グループポリシーエディターを開き、 管理用テンプレート -> TypicalReply -> 既定値 -> TypicalReply設定 を開きます。 この設定を有効にし、テキストエリアに後述のJSONでの設定を記載します。

デフォルト設定ファイルによる設定

デフォルト設定ファイルは以下の箇所に存在します。

C:\Program Files\TypicalReply\TypicalReplyConfig.json

このファイルに後述のJSONでの設定を記載します。

ユーザー設定ファイルによる設定

ユーザー設定ファイルは以下の箇所に存在します。

%APPDATA%\TypicalReply\TypicalReplyConfig.json

このファイルに後述のJSONでの設定を記載します。

複数の設定が存在する場合の優先度

グループポリシーの設定、デフォルト設定ファイル、ユーザー設定ファイルによる設定で、優先度が異なる場合、最も優先度が高い設定が使用されます。 優先度が同じ場合、グループポリシー、デフォルト設定ファイル、ユーザー設定ファイルの順に内容がマージされます。

  • GroupLabelは最後の設定のものが使用されます(指定していた場合)。
  • ButtonConfigListは各内容がマージされます。
    • 重複したIDのButtonConfigは最後の設定のものが使用されます。
    • 重複しないIDのButtonConfigは追加されます。

インストーラーでのデフォルト設定ファイルのインストール

セットアップの存在するフォルダに DefaultConfig\TypicalReplyConfig.json を配置した状態でセットアップを実行することで、 セットアップ実行時に自動で C:\Program Files\TypicalReply\TypicalReplyConfig.json にファイルが配置されます。

設定項目

設定は以下のようなJSON形式で指定します。

{
    "Priority" : 1,
    "ConfigList": [
        {
            "Culture": "ja-JP",
            "GroupLabel": "定型返信",
            "ButtonConfigList": [
                {
                    "Id": "Like",
                    "Label": "いいね!",
                    "SubjectPrefix": "[[いいね!]]:",
                    "Body": "いいね!",
                    "Recipients": ["all"],
                    "QuoteType": true,
                    "AllowedDomains": [
                        "*"
                    ]
                },
                {
                    "Id": "OK",
                    "Label": "了解",
                    "SubjectPrefix": "[[了解]]:",
                    "Body": "了解しました。",
                    "Recipients": ["all"],
                    "QuoteType": true,
                    "AllowedDomains": [
                        "*"
                    ]
                }
            ]
        },
        {
            "Culture": "en-US",
            "GalleryLabel": "Typical Reply",
            "ButtonConfigList": [
                {
                    "Id": "Like",
                    "Label": "Like!",
                    "SubjectPrefix": "[[Like!]]:",
                    "Body": "Like!",
                    "Recipients": ["all"],
                    "QuoteType": true,
                    "AllowedDomains": [
                        "*"
                    ]
                },
                {
                    "Id": "OK",
                    "Label": "OK",
                    "SubjectPrefix": "[[OK]]:",
                    "Body": "OK.",
                    "Recipients": ["all"],
                    "QuoteType": true,
                    "AllowedDomains": [
                        "*"
                    ]
                }
            ]
        }
    ]
}

TypiclReplyConfig: 設定のルート

設定名 必須 省略時のデフォルト 概要
Priority 数値 no -1 レジストリと設定ファイルのどちらの設定を使うかの優先度。
値が大きい方が使用される。
値が同じ場合は設定がマージされる。
ConfigList Configのリスト yes - 各言語ごとの設定(Config)のリスト

Config: 各言語ごとの設定

設定名 必須 省略時のデフォルト 概要
Culture 文字列 no null 対象となるカルチャ。
ロケールなしの言語のみを指定することも可能です。
現在のカルチャにマッチするCultureがない場合、Cultureの値に関わらず先頭のConfigを使用します。
"ja-JP""ja"
GroupLabel 文字列 no "Typical Reply" リボンやコンテキストメニューに表示される本機能のラベル "定型返信"
TabMailInsertAfterMso 文字列 no "GroupMailRespond" リボン上でTypical Replyを表示するデフォルトの位置。ビルトインのidMsoを指定する。 "GroupMailRespond"""
TabReadInsertAfterMso 文字列 no "GroupRespond" メールのリボン上でTypical Replyを表示するデフォルトの位置。ビルトインのidMsoを指定する。 "GroupRespond"""
ContextMenuInsertAfterMso 文字列 no "Forward" メールのコンテキストメニュー上でTypical Replyを表示するデフォルトの位置。ビルトインのidMsoを指定する。 "Forward"""
ButtonConfigList ButtonConfigのリスト yes - 定型返信ボタン設定のリスト -

ButtonConfig: 定型返信ボタン設定。返信内容や返信先等の設定を行う。

設定名 必須 省略時のデフォルト 概要
Id 文字列 yes - ボタンのID。ButtonConfigList内で重複不可。 "LikeId"
Label 文字列 yes - ボタンに表示されるラベル "いいね!"
SubjectPrefix 文字列 no null 件名の先頭に挿入する文言 "[[いいね]]"
Subject 文字列 no 返信のデフォルト件名 件名 "報告"
Body 文字列 no null 本文 "いいね"
Recipients 文字列のリスト no 送信先なし 送信先。
["blank"]: 送信先なし
["all"]: 全員に返信
["sender"]: 送信者にだけ返信
その他の文字列リスト: 指定のアドレスに返信
["test@test.co.jp", "test2@test.co.jp"]
QuoteType boolean no false 元の文言を引用するかどうか。
true: 引用する
false: 引用しない
true
AllowedDomains 文字列のリスト no 全て許可 送信を許可するドメインリスト。このドメイン以外が含まれている場合、返信用メールの作成、送信は行わない。
["*"]: 全て許可する
その他の文字列リスト: 指定したドメインのみ送信を許可する
["test.co.jp", "test2.co.jp"]
ForwardType 文字列 no 添付しない 元のメールを添付するかどうか。
attachment: 添付する
attachment
Size 文字列 no "normal" グループに表示するボタンのサイズ
normal: 通常ボタン
large: 大きいボタン
attachment

新しい設定追加の例

「最高!」というボタンを追加する方法を考えます。

設定ファイル(%APPDATA%\TypicalReply\TypicalReplyConfig.json)を編集します。

現在の設定が以下のようになっているとします。

{
    "ConfigList": [
        {
            "Culture": "ja-JP",
            "GalleryLabel": "定型返信",
            "ButtonConfigList": [
                {
                    "Id": "Like",
                    "Label": "いいね!",
                    "SubjectPrefix": "[[いいね!]]:",
                    "Body": "いいね!",
                    "Recipients": ["all"],
                    "QuoteType": true,
                    "AllowedDomains": [
                        "*"
                    ]
                }
            ]
        }
    ]
}

ButtonConfigListにButtonConfigを追加します。

IdAwesomeとし、Label最高!とします。

{
    "Id": "Awesome",
    "Label": "最高!"
}

元のメッセージに対して返信するので、元の件名は残して、件名に対してリアクションのメッセージを追加します。 そのために、Subjectは空にして元の件名が残るようにし、SubjectPrefixで件名の先頭にメッセージを追加します。

{
    "Id": "Awesome",
    "Label": "最高!",
    "SubjectPrefix": "[[最高!]]:"
}

同様に、元のメッセージに対して返信するので、元の本文は残して(引用状態にして)、本文にメッセージを追加します。 そのために、Bodyにメッセージを指定し、QuoteTypetrueを指定します。

{
    "Id": "Awesome",
    "Label": "最高!",
    "SubjectPrefix": "[[最高!]]:",
    "Body": "最高!",
    "QuoteType": true
}

このボタンでは、送信者にのみ返信することとします。 そのために、Recipients["sender"]を指定します。

{
    "Id": "Awesome",
    "Label": "最高!",
    "SubjectPrefix": "[[最高!]]:",
    "Body": "最高!",
    "QuoteType": true,
    "Recipients": ["sender"]
}

また、送信先のドメインは自身が所属しているtest.co.jpのみに限定することとします。 そのために、AllowedDomains["all"]を指定します。

{
    "Id": "Awesome",
    "Label": "最高!",
    "SubjectPrefix": "[[最高!]]:",
    "Body": "最高!",
    "QuoteType": true,
    "Recipients": ["sender"],
    "AllowedDomains": ["test.co.jp"]
}

元のメッセージの添付は不要とします。 そのため、ForwardTypeは指定しません。

以上で作成した設定をButtonConfigListに追加します。

{
    "ConfigList": [
        {
            "Culture": "ja-JP",
            "GalleryLabel": "定型返信",
            "ButtonConfigList": [
                {
                    "Id": "Like",
                    "Label": "いいね!",
                    "SubjectPrefix": "[[いいね!]]:",
                    "Body": "いいね!",
                    "Recipients": ["all"],
                    "QuoteType": true,
                    "AllowedDomains": [
                        "*"
                    ]
                },
                {
                    "Id": "Awesome",
                    "Label": "最高!",
                    "SubjectPrefix": "[[最高!]]:",
                    "Body": "最高!",
                    "QuoteType": true,
                    "Recipients": ["sender"],
                    "AllowedDomains": ["test.co.jp"]
                }
            ]
        }
    ]
}

これで、定型返信のボタンの中に、「最高!」ボタンが追加されます。

"「最高!」ボタン"