Outlook からメールを取得する「Outlookメールを取得」アクティビティについてです。
1.アクティビティのプログラム名
RCA.Activities.Mail.GetOutlookMailMessages
2.説明
Studio バージョン ~2.0.2.0
クイックアクセス: 「ツールボックス」 > 「メール」 > 「Outlookメールを取得」
Studio バージョン 2.0.3.0~
クイックアクセス: 「ツールボックス」 > 「メール」 > 「Outlook」 > 「Outlookメールを取得」
Outlook から受信済みのメールを取得するアクティビティです。コボットとして動作する端末に、アカウントが設定済みのMicrosoft Outlookがある場合に利用できます。Microsoft Outlookの指定したフォルダーにある受信済みのメールを取得し、件名や本文などをデータとして変数に格納します。取得したメールの添付ファイルを取得したい場合、「Outlookの添付ファイルを保存」アクティビティを合わせて使用してください。
※動作を確認したコボットStudioのバージョン:2.0.1.6
※バージョンによって文言などが一部異なる場合がございます
3.プロパティ
プロパティ項目 | プロパティ名 | 入力欄 | 説明 |
---|---|---|---|
オプション | フィルタ | 値を入力(String型) | 取得の対象となるメールメッセージからフィルタリングしたい条件を設定する。JET クエリまたは DASL クエリで記述する。 |
既読にする | チェック項目 | チェックがある場合、取得したメールメッセージが未読の場合は既読にする。 | |
先頭 | 値を入力(Int32型) | 取得したメールメッセージ一覧から、変数に格納する件数を設定する。フィルタを指定した場合、フィルタリング後の先頭からの件数となる。すべてを格納する場合「Int32.Maxvalue」と記述する。値が空の場合、メールメッセージは変数に格納されない。 | |
未読メッセージのみ | チェック項目 | チェックがある場合、未読のメールメッセージのみ取得対象とする。 | |
その他 | パブリック | チェック項目 | ログにアクティビティ内の変数と引数がログファイルに書き込まれ、Centerにプッシュされる。(詳細は「プロパティ項目「パブリック」について」を参照) |
表示名 | 任意の文字列 | デザイナーパネルのアクティビティ名に反映される。 | |
一般 | タイムアウト | 値を入力(Int32型) | メール取得を中断するまでの時間(ミリ秒)。設定した時間を過ぎると取得処理を停止し、エラーをスローする。設定しない場合の既定値は 30000 ミリ秒 (30 秒) 。 |
出力 | メッセージ | 値を入力(List<MailMessage>型) | 取得したメールメッセージの格納先を設定する。 |
入力 | アカウント | 値を入力(String型) | メールメッセージを取得したいアカウントを設定する。 |
メールフォルダ | 値を入力(String型) | メールメッセージを取得したいOutlookのフォルダを指定する。 |
4.使い方
「Outlookメールを取得」アクティビティを使用し、Outlookの受信トレイから「2020/7/31以降に受信したメール」を取得してみましょう。
アクティビティ「メール > Outlookメールを取得」を、ツールボックスからデザイナーパネルにドラッグ&ドロップで配置します。
プロパティを設定します。まず取得先となるOutlookのアカウントと取得したいフォルダの設定です。 プロパティパネルの①「入力 > アカウント」に取得したいOutlookのメールアカウントを設定、②「入力 > メールフォルダ」に取得したいOutlookのフォルダを設定します。サブフォルダを取得する場合は「"受信トレイ\サブフォルダ名"」と指定します。
次に取得したメールメッセージの格納先の設定です。プロパティパネルのの「出力 > メッセージ」に変数名を指定します。変数が作成されていない場合、List<MailMessage>型の変数を作成し設定してください。「プロパティから作成する」で変数を作成すると、List<MailMessage>型で作成されます。※変数の作成については「変数の作成」を参照してください。
あとは取得したいメッセージへのフィルタを設定します。デフォルトでは指定したメールフォルダの「未読メッセージの先頭から30件」となります。2020/7/31以降に受信したメールを取得するようにフィルタを設定します。プロパティパネルの ①「オプション > フィルタ」に「"[ReceivedTime] >= '2020/7/31 0:00'"」と記述します。※フィルタの記述については「Outlookメールのフィルタについて」を参照してください。②「オプション > 先頭」に「 Int32.Maxvalue 」を指定します。③「オプション > 未読メッセージのみ」のチェックをはずします。
取得結果を確認しましょう。まずは取得件数を表示します。アクティビティ「コア > メッセージボックス」をツールボックスからデザイナーパネルにドラッグ&ドロップで配置し、アクティビティ内「テキスト」に「 "受信トレイから" + messageList.Count.tostring + "件取得しました。" 」と設定します。(プロパティパネルの「入力 > テキスト」からも可能です。)
次に取得したメールメッセージのリストから、メールメッセージの件名と受信日時を表示します。アクティビティ「コントロールフロー > 繰り返し(コレクションの各要素)」を、ツールボックスからデザイナーパネルにドラッグ&ドロップで配置します。
アクティビティ内「価値」にメールメッセージのリストを格納した「messageList 」を指定します。プロパティパネルの「その他 > TypeArgument」は「System.Net.Mail.MailMessage型」を選択します。型の参照から「MailMessage」で検索すると候補として表示されます。※このアクティビティについての詳細は「繰り返し(コレクションの各要素)」を参照してください。
変数 item に取り込まれたメールメッセージの件名と受信日時を表示します。アクティビティ「コア > メッセージボックス」をツールボックスからデザイナーパネルにドラッグ&ドロップで配置し、アクティビティ内「テキスト」に「"件名:" + item.Subject + vbNewLine + "受信日時:" + item.Headers("Date")」と設定します。※変数 item のデータタイプ「MailMessage」の記述については「MailMessageプロパティの指定方法」を参照してください。
「ホーム > スタート」をクリック、または、「F5キー」押下で実行します。
実行結果です。