【できるUiPath】は注目のRPAサービス「UiPath」を使って、RPAのワークフローを作るための基本操作から、実際に業務をRPA化する実践テクニックまでを解説する連載です。
過去の記事一覧【できるUiPathまとめ】

レッスン24メッセージとファイルの取得

メールの本文や添付ファイルを読み取るには

Outlookで受信したメールから、メッセージの内容を取得してみましょう。業務のメールなどを起点として、処理を実行することなどができます。

Outlookのメールを読み取る

受信したメールを読み取りたい場合も、最も簡単なのはOutlookを使う方法です。受信操作自体はOutlookに任せることで、受信済みのメールを簡単に取得できます。

[Outlookメールメッセージを取得]

指定したフォルダー(標準では受信トレイ)にあるメールを取得し、件名や本文などをデータとして変数に格納できます。

メールの本文や添付ファイルを読み取るには(メッセージとファイルの取得) - できるUiPath

[添付ファイルを保存]

取得したメールから、添付ファイルを取り出すには、[添付ファイルを保存]アクティビティを使います。

メールの本文や添付ファイルを読み取るには(メッセージとファイルの取得) - できるUiPath

HINTOutlook以外の方法でメッセージを取得するには

メールを取得するためのアクティビティには、このほか[POP3メールメッセージを取得][IMAPメールメッセージを取得]、Exchangeの[メールメッセージを保存]などがあります。これらを利用する場合は、接続先のメールサーバーなどの情報が必要です。

HINTこのレッスンで使う変数

このレッスンでは、次の変数を使います。ワークフロー内で登場する変数の用途を確認しておきましょう。

msgDat

型:List<MailMessage>
用途:受信したメールの件名や本文などを格納する

HINT取得できるメールの数とは

[Outlookメールメッセージを取得]では、取得するメールの数を指定できます。標準では、最上部(新着メール)から30通、しかも未読メッセージのみを取得します。

これらの設定はプロパティパネルから変更できるので、処理に応じて調整しましょう。

メッセージを取得する

メールを取得し、その本文を表示してみましょう。取得したメールをリスト型の変数に格納し、何通目かを指定して内容を表示します。

1[Outlookメールメッセージを取得]を追加する

メールの本文や添付ファイルを読み取るには(メッセージとファイルの取得) - できるUiPath

2変数に格納する

メールの本文や添付ファイルを読み取るには(メッセージとファイルの取得) - できるUiPath

3[メッセージボックス]を追加して本文を表示する

メールの本文や添付ファイルを読み取るには(メッセージとファイルの取得) - できるUiPath

HINT取得するフォルダーを指定するには

標準では、Outlookの「受信トレイ(Inbox)」に保存されているメールが取得の対象となります。別のフォルダーを指定したいときは、プロパティパネルの[メールフォルダー]の項目に「"請求書"」といったフォルダー名を指定しましょう。

サブフォルダーの場合は「"請求書\インプレス"」のように「\」を使って指定します。

メールの本文や添付ファイルを読み取るには(メッセージとファイルの取得) - できるUiPath

HINTどうやってメッセージを取得するの?

メッセージは、手順3のように「msgDat(0).Body.ToString」と、メッセージを格納した変数に対して、「()」で何通目かを指定し、「.Body(本文)」とどの情報かを指定して表示します。送信者の場合は「.From」、件名の場合は「.Subject」と指定します。

このほか、[CC][Sender][Header]などさまざまな情報を取得できます。

添付ファイルを保存する

添付ファイルは、「.Attachments」と指定することもできますが、[添付ファイルを保存]アクティビティを使った方が簡単です。

4[添付ファイルを保存]を追加する

メールの本文や添付ファイルを読み取るには(メッセージとファイルの取得) - できるUiPath

5添付ファイルの保存先を指定する

メールの本文や添付ファイルを読み取るには(メッセージとファイルの取得) - できるUiPath

HINT「0」が新着から数えて1通目

「()」で指定する値は「0」から数えます。Outlookでは、通常、新着メールが上に表示されるため、新しく届いたメールから数えて1通目が「0」、2通目が「1」となります。

HINT[優先トレイ]に注意しよう

最新版のOutlookには、[優先トレイ]という、重要なメールを優先的に表示する機能が搭載されています。

通常、受信トレイを開くと、優先トレイのメッセージだけが表示されますが、[Outlookメールメッセージを取得]で取得される30通(標準設定時)は、優先トレイの30通ではありません。[その他]にあるメールも含めたトータル30通となるため、何通目かを指定する際に注意が必要です。

複数メールをまとめて処理する

複数のメールをまとめて処理するときは、[繰り返し(コレクションの各要素)]を使って、取得したメッセージを順番に処理します。

1[繰り返し(コレクションの各要素)]を追加する

メールの本文や添付ファイルを読み取るには(メッセージとファイルの取得) - できるUiPath

HINT複数メールの処理を確認しておこう

このレッスンでは、複数メールをまとめて処理するために、[繰り返し(コレクションの各要素)]を使っています。下の図のように、読み込まれたメールから、1通ずつ[item]に読み込むことで、メールの要素を取得できます。

添付ファイルだけでなく、件名(Subject)や本文(Body)を指定して取得することもできます。

メールの本文や添付ファイルを読み取るには(メッセージとファイルの取得) - できるUiPath

2[繰り返し(コレクションの各要素)]の型を指定する

メールの本文や添付ファイルを読み取るには(メッセージとファイルの取得) - できるUiPath

3添付ファイルの保存先を指定する

メールの本文や添付ファイルを読み取るには(メッセージとファイルの取得) - できるUiPath

HINT[繰り返し(コレクションの各要素)]って何?

[繰り返し(コレクションの各要素)]は、データの集まりに対して、その構成要素がなくなるまで処理を繰り返すことができるアクティビティです。配列の要素を順番に処理するときに使います。

HINT「item」を分かりやすく置き換えることもできる

ここでは、[繰り返し(コレクションの各要素)]の[要素]に、標準の「item」を使っていますが、こうした処理がワークフローの中に何度も登場すると、「item」がどのデータを扱っているのかが分かりにくくなります。

このため、「item」を「message」など、要素の内容が分かる名称に変更しておくといいでしょう。

Pointメールベースの業務を自動化できる

処理が終わったデータをメールで送ったり、請求書の依頼メールが届いたことを確認して処理を作成したりと、普段の業務ではメールの処理がどこかに介在します。

UiPath Studioでは、メールの処理を行うワークフローも簡単に作成できるため、Outlookを使えば、簡単に処理を作成できるうえ、Outlookの仕分け機能なども活用しつつメールを処理できるのでおすすめです。

提供:UiPath

関連まとめ記事