この章では、未読メールに特定の表題がある場合、ポップアップメッセージを表示させる、というワークフローを作っていきたいと思います。
メールに関するアクティビティは以下になります。

マイクロソフトのOutlookをメールの送受信ソフトとして使っている場合、UiPathのワークフローの作成がより簡単になります。今回は、すでにOutlookにダウンロードされている未読メールが対象になります。
まずOutlook メール メッセージを取得というアクティビティをデザインパネルに追加します。
追加した後は、下記の通りプロパティを設定します。
未読メッセージのみにチェックを入れる。これで未読メッセージのみをチェックします。
メールフォルダーの項目に、Outlookでメールを受信するメールフォルダー名を入れる。受信箱のフォルダー名は違う場合があるので、Outlookで確認してください。引用符で囲むのを忘れずに。
メッセージの項目で、新しい変数を作成します。入力フィールドをマウスで右クリックして変数の作成を選ぶか、キーボードのコントロールキー + kを同時に押して変数名messagesを入力します。この変数の型は自動的にList<MailMassage>に設定されます。

次に、フロー条件分岐を追加し、 Outlook メール メッセージを取得のアクティビティとつなげます。
そして、繰り返し(コレクションの各要素)というアクティビティを追加します。これはeachと検索をすると見つかります(英語版ではFor Eachというアクティビティ名になっているため)。このアクティビティを下図のようにフロー条件分岐のTrue(左面)につなぎます。このアクティビティの詳細を知りたい方はこちらをご覧ください。
メッセージボックスのアクティビティを繰り返し(コレクションの各要素)の下に追加し、つなげます。
さらに、メッセージボックスを追加し、フロー条件分岐のFalse(右面)につなぎます。

このワークフローは、下記の順に進んでいきます。
1.Outlook メール メッセージを取得で、未読のメッセージのみを変数に入れる。
2.フロー条件分岐で未読のメッセージがあるかどうかを判断し、ある場合(True)は繰り返し(コレクションの各要素)に移る。ない場合(False)は、メッセージボックスでメールがないと表示し、ワークフローは終了する。
3.繰り返し(コレクションの各要素)の中に条件分岐を設け、そこでメールの表題に特定のキーワード(ここの例ではテストメール)があるかどうかをチェックする。メールがあった場合は数をカウントしていく。
4.最後にメッセージボックスでカウントした数を表示する。
さて、フロー条件分岐のプロパティで条件という項目があるので、そこに
messages.Count > 0
と記入します。
これはつまり、さっき作成したmessagesの変数の中に、Countでいくつ値が入っているかを数えて、その結果が0以上であればTrueを、0以下であればFalseを返すという意味です。左から順番に読んでいけば、そんなに難しくないですよね。

次は、繰り返し(コレクションの各要素)のダブルクリックして開き、プロパティを設定します。
コレクション(下図の左側赤枠内)に先ほど作成した変数のmessagesを入力します。
プロパティのTypeAugument (下図の右側赤枠内) ですが、デフォルトではObjectが選択されています。これをSystem.Net.Mail.MailMessageに変更する必要がありますが、ドロップダウンメニューをクリックしてもその項目は出てきません。そこで、型の参照…を選択します。

型のリストが表示されましたね。ここでmailmessageと入力をして検索をかけると、下記のように候補が出てきます。ここでSystem [4.0.0.0]とSystem.Net.Mailの下にあるMailMessageを選択します。

なぜ上記のような変数を選択しなければならないのかというと、Outlook メール メッセージを取得で作成したmessagesという変数の型がList<MailMassage>で、それに合わせなければならないためです。ここを設定しないとエラーになり、正しく実行されません。
ここで2つの変数を作成します。
変数名、messageCount、変数の型、Int32、規定値、0
変数名、sentence、変数の型、String、規定値、“テストメール”

messageCountという変数は、未読の特定のキーワードを含むメールの表題を数えるためのもので、sentenceは、その特定のキーワードを入れておく変数です。
次は、繰り返し(コレクションの各要素)の下にある本体のワークフロー内に条件分岐を追加します。
さらに、Conditionに以下を入力します。
item.Subject.Contains(sentence)
この意味は、messagesから繰り返しによって代入されたitemの中の、Subject(メールの表題)に、sentenceの中に代入されているキーワードのテストメールが含まれているか(Contains)、ということです。

ここで、代入というアクティビティを条件分岐のThenの枠内に追加します。

下図のようにアクティビティの左辺値(To)にmessageCountと、そして右辺値(Value)にはmessageCount + 1と入力します。


さて、ここで繰り返し(コレクションの各要素)の上の階層のフローチャートに戻ります。そして、そのアクティビティの下の方に追加したメッセージボックスをダブルクリックして開きます。

このアクティビティに、下記のように入力します。
sentence + “のキーワードを含む未読メールが” + messageCount.ToString + “通あります。”
sentenceの場所には、この変数に入っているキーワードが表示され、続けて“のキーワードを含む未読のメールが”が表示され、続けてmessageCountの変数に入っているメールの数が次に来ます。その後にある.ToStringの意味ですが、これはmessageCountの変数の型がそのままテキストとして表示できないため、.ToStringでいったんStringという変数の型に変換してから表示しています。そして最後に“通あります。”がきて文章が完成します。

さて、以上で設定は終了なので、ファイルをデバッグを押して実行してみましょう。以下のメッセージが表示されるはずです。

参考にしたサイトのリンク
https://www.uipath.com/developers/video-tutorials/email-automation