UiPathでメールを送信する際に、テンプレートの中の一部の文字を変数の値に置き換えたいといった場面がありましたので、備忘録として掲載したいと思います。
例えば以下のようなメールがあるとします。
この中の「日付」と「場所」を別に用意した変数の値に置換したいといった場合に利用できます。
全体フロー
フロー説明
1、テキストファイルにHTMLメールのタグを入力
テンプレートとなるHTMLメールをテキストファイルに記述します。
毎回これをベースとして、指定の値のみを変数で置換します。
今回の例では、「場所」と「日時」の後にそれぞれ「#1」、「#2」とあります。
この文字列を変数で置換していきます。
作ったテキストファイルはどこに保存しても構いませんが、UiPathのプロジェクトフォルダに
入れて おくとバックアップの際も便利だと思います。
2、#1、#2を置き換えるための変数を作成しておく
今回の例では、シンプルに文字列を代入していますが、基本的になんでも大丈夫です。
3、テキストファイルの読み込みをする
この例では、取り込んだHTMLメールを「mail_draft」という変数に入れています。
これにより、次の手順でVBの関数で置換ができます。
4、代入アクティビティで#1と#2をReplace関数で置換する
mail_draft.Replace("#1",day).Replace("#2",place)
置換するキーワードが2つ以上がある場合も、
mail_draft.Replace(“#1”,代入する変数名1).Replace(“#2”,代入する変数名2)と繋げていく
5、Outlookメッセージを送信アクティビティの本体に置換後の変数を指定する
この時、プロパティの「HTML本文」にチェックをつけるのを忘れずに!
他にも良い方法があるかもしれませんが、置換対象が少ない場合は有効かと思います。